当前位置: 首页 > wzjs >正文

网站生成app 免费工具磁力猫引擎

网站生成app 免费工具,磁力猫引擎,水利局网站建设整改报告,南宁免费建站系统参考笔记: java 单列集合List 万字详解(通俗易懂)_java singlelist-CSDN博客 目录 前言: 一、概述 二、特点 三、使用集合的经典四部曲 四、List接口常用的方法 五、List接口实现类——ArrayList 六、List接口实现类——Ve…

参考笔记: java 单列集合List 万字详解(通俗易懂)_java singlelist-CSDN博客


目录

前言:

一、概述

二、特点

三、使用集合的经典四部曲

四、List接口常用的方法

五、List接口实现类——ArrayList

六、List接口实现类——Vector

七、List接口实现类——LinkedList


前言:

         集合框架体系图如下:

        List 接口属于单列集合 Collection 接口下的其中一条分支,它最常用的三个实现类分别是——ArrayList、Vector、LinkedList 。这三个实现类各有各的特点,但又有着一些相同的特性。本文将从 List集合的介绍、特点、使用,再到它的三个常用实现类的底层源码分析,完完整整地梳理清楚

一、概述

List 位于 java.util.List ,是单列集合 Collection 接口下的一个子接口。接口不能直接被实例化,因此需要通过创建其子类对象来完成该接口的实例化(即多态)。List 接口最常用的 3  个子类有  ArrayList、Vector、LinkedList 。本文以 ArrayList 类为例演示 List 接口中的常用方法。eg:

        List list = new ArrayList();  (多态的方式保证了编译类型为 List 接口类型,运行类型为 ArrayList


二、特点

  •  List 集合是有序集合,即元素的存储顺序是一致的。 List 集合中的元素可通过索引的形式来访问

 "存储顺序一致" :比如将某个元素添加进集合时,它在索引为 3 的位置,也就是在当前集合中的第 4 个元素。那么,在当前集合无改动的情况下,你想取出该元素就必须从索引为 3 的位置去取,大白话就是:一个元素原来是在哪儿放的,现在就是从哪儿取的

  •  List 集合允许重复,即一个集合中可以有相同的元素

三、使用集合的经典四部曲

① 创建集合对象

② 创建元素对象

③ 将元素对象添加到集合对象中

 遍历集合

四、List接口常用的方法

 public boolean add(E e):将元素 e 添加到集合的末尾

② public void add(int index, E element):将元素添加到该集合索引为 index 的位置

③ public E remove(int index):将集合中索引为 index 的元素删除

④ public boolean remove(Object o):若该集合中存在该元素,则删除第一个指定的元素

⑤ public E get(int index):获取集合中索引为 index 的元素

⑥ public int indexOf(Object o):获取集合中第一个指定元素的索引,若集合中没有该元素,则返回 -1 

⑦ public int size():获取集合中的元素个数

⑧ public boolean contains(Object o):判断集合中是否有指定的元素

⑨ public boolean isEmpty():判断集合是否为空

⑩ public E set(int index, Object element):将集合中索引为 index 的元素修改为 element 

案例演示 

import java.util.ArrayList;
import java.util.List;
/*** 单链集合(Collection)之List集合:*      一.特点*          有序(元素的存取顺序一致), 可重复*      二.注意:*          List是接口,所以可以通过创建其子类ArrayList对象来完成该接口的实例化*          eg : List list = new ArrayList();*      三.List接口中的常用成员方法:*          1.public boolean add(E e)                   将元素 e 添加到集合的末尾*          2.public void add(int index, E element)     将元素 e 添加到该集合索引为 index 的位置*          3.public E remove(int index)                将集合中索引为 index 的元素删除*          4.public boolean remove(Object o)           若该集合中存在该元素,则删除第一个指定的元素*          5.public E get(int index)                   获取集合中索引为 index 的元素*          6.public int indexOf(Object o)              获取集合中第一个指定元素的索引,若集合中没有该元素,则返回-1*          7.public int size()                         获取集合中的元素个数*          8.public boolean contains(Object o)         判断集合中是否有指定的元素*          9.public boolean isEmpty()                  判断集合是否为空*          10.public E set(int index, Object element)  将集合中索引为index的元素修改为element**/
public class demo {public static void main(String[] args) {//1.创建集合对象List list = new ArrayList();/* 测试方法9:isEmpty(),判断此时集合是否为空 */boolean bool1 = list.isEmpty();System.out.println("集合此时为空吗:" + bool1);System.out.println("---------------------------------");//2.创建元素对象Student student1 = new Student("Kyrie", 33);Student student2 = new Student("Five", 22);Student student3 = new Student("Ice", 44);Student student4 = new Student("Cyan", 44);Student student5 = new Student("Cyan", 19);Student student6 = new Student("Cyan", 19);//3.将元素对象添加到集合对象中/* 测试方法1.add(E e)和2.add(int index, E element),对集合添加元素 */boolean b = list.add(student1);     //添加Kyrie到list集合中System.out.println("student1对象成功添加到集合list中了吗?" + b);System.out.println("---------------------------------");/* 对于方法1.add(E e)实际开发中我们都会省略前面的booelan b = ,而是直接调用方法 */list.add(student2);                 //添加Five到list集合中list.add(student3);                 //添加Ice到list集合中list.add(0, student4);        //添加第一个Cyan(44岁)到list集合中list.add(1, student5);        //添加第二个Cyan(19岁)到list集合中list.add(2, student6);        //添加第三个Cyan(19岁)到list集合中/* 测试一下list集合的可重复性 */list.add(10);list.add(10);/*本来student1,student2,student3,分别对应索引0,1,2但我们此处可以调用方法②将student4 ,student5 和 student6分别插入到索引为0,1,2的位置,这样,集合中的结果应该如下:索引 ----->  对应元素0   ----->   Cyan, 441   ----->   Cyan, 192   ----->   Cyan, 193   ----->   Kyrie, 334   ----->   Five, 225   ----->   Ice, 446   ----->   107   ----->   10*///4.遍历集合/* 测试方法5.get(int index), 遍历一下集合 */for (int i = 0; i < list.size(); ++i) {System.out.println("list集合的第" + i + "个元素为:" + list.get(i));}System.out.println("---------------------------------");/* 测试方法6.indexOf(Object o) */int index1 = list.indexOf(student4);System.out.println("student4元素在集合list中的索引为:" + index1);int index2 = list.indexOf(10);System.out.println("10的第一个元素在集合list中的索引为:" + index2);int index3 = list.indexOf(100);System.out.println("如果没有100这个元素,请返回-1" + index3);/* 测试方法7.size() */int length = list.size();System.out.println("添加了六个学生对象元素后,集合目前的长度为" + length);System.out.println("---------------------------------");/* 测试方法8.contains(Object) 和 再次测试方法9.isEmpty() */boolean b2 = list.isEmpty();System.out.println("添加了六个学生对象元素后,集合目前还为空吗?" + b2);System.out.println("---------------------------------");boolean b3_1 = list.contains("Cyan");System.out.println("集合list中有Cyan这个元素吗?" + b3_1);boolean b3_2 = list.contains(student1);System.out.println("集合list中有student1这个元素吗?" + b3_2);boolean b3_3 = list.contains(22);System.out.println("集合list中有22这个元素吗?" + b3_3);System.out.println("---------------------------------");/* 测试方法10.set(int index, Object o) */System.out.println("修改之前,list集合的索引为6的元素是:" + list.get(6));list.set(6, 11);System.out.println("修改之后,list集合的索引为6的元素是:" + list.get(6));System.out.println("修改之前,list集合的索引为5的元素是:" + list.get(5));list.set(5, student1);System.out.println("修改之后,list集合的索引为5的元素是:" + list.get(5));/* 测试方法3.remove(int index) 和 方法4.remove(Object o)*/list.remove(list.size() - 1);list.remove(student1);System.out.println("看看删除最后一个元素和第一个元素后集合成什么样子了:");for (int i = 0; i < list.size(); ++i) {System.out.println(list.get(i));}System.out.println("---------------------------------");}
}class Student {//私有的成员变量public String name;public int age;//公共的空参构造public Student() { }//公共的带参构造public Student(String name, int age) {this.name = name;this.age = age;}//重写toString() 方法,以便于遍历集合时可以打印出学生对象。@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +'}';}
}

五、List接口实现类——ArrayList

        链接如下:

【Java集合】ArrayList源码深度分析-CSDN博客https://blog.csdn.net/m0_55908255/article/details/146886585?sharetype=blogdetail&sharerId=146886585&sharerefer=PC&sharesource=m0_55908255&spm=1011.2480.3001.8118        ArrayList主要内容包括:

        ①ArrayList类简介

        ②ArrayLIst类的底层实现

        ③ArrayList类的源码解读

六、List接口实现类——Vector

         链接如下:

【Java集合】Vector源码深度分析-CSDN博客https://blog.csdn.net/m0_55908255/article/details/146949740?sharetype=blogdetail&sharerId=146949740&sharerefer=PC&sharesource=m0_55908255&spm=1011.2480.3001.8118        Vector主要内容包括:

        ①Vector类简介

        ②Vector类的底层实现

        ③Vector类 VS ArrayLIst类

        ④Vector类的源码解读

七、List接口实现类——LinkedList

          链接如下:

【Java集合】Vector源码深度分析-CSDN博客https://blog.csdn.net/m0_55908255/article/details/146949740        LinkedList主要内容包括:

        ①LinkedList类简介

        ②LinkedList类的底层实现

        ③LinkedList类 VS ArrayList类

        ④LinkedList类源码解读

http://www.dtcms.com/wzjs/142158.html

相关文章:

  • 做视频解析网站要什么服务器网络营销常用工具
  • 网站备案期间怎么做品牌推广的方式有哪些
  • wordpress做动态页面seo的培训网站哪里好
  • wordpress会员付费可见持续优化疫情防控举措
  • 合川网站建设爱站工具seo综合查询
  • 网站建设服装项目设计书重庆排名优化整站优化
  • 自己做服务器的网站吗长沙网站优化推广
  • 世界杯竞猜网站开发短期培训学什么好
  • 互联网平台服务seo专业培训学费多少钱
  • 做印量调查的网站seo谷歌外贸推广
  • 南山模板网站建设公司推广引流渠道平台
  • 浙江做网站公司有哪些舆情报告
  • 网站建站费用长春做网站公司长春seo公司
  • wordpress友链首页显示赣州seo优化
  • 成都工业学院文献检索在哪个网站做自媒体平台注册下载
  • java eclipse做网站宁波seo外包推广公司
  • 网站登录界面图片用什么软件做西安seo优化公司
  • 如何在百度中搜索到网站网站流量查询工具
  • 网站开发要写代码吗目前最好的引流推广方法
  • 建站房的公司google官方入口
  • 网站后台 生成所有页面百度地图推广电话
  • 做钟点工 网站如何推广普通话的建议6条
  • 用花生棒自己做网站最新百度新闻
  • 做网站手机浏览全屏企业线上培训平台有哪些
  • 南宁做网站优化国产系统2345
  • 人民政府 网站建设优化二十条
  • 苏州网站建设推广seo推广服务
  • 牛街网站建设电脑培训学校在哪里
  • 哪个网站可以做条形码seo排名优化培训怎样
  • 网站死链是什么可以免费打开网站的软件下载