集合进阶 笔记

集合进阶

集合进阶 笔记_第1张图片
集合进阶 笔记_第2张图片
集合进阶 笔记_第3张图片

Collection集合

在java.util包下,没有具体的的实现类,必须使用子接口比如set和list实现
集合进阶 笔记_第4张图片

Collection c = new ArrayList();//创建collection集合的对象
c.add("Hello");//添加元素 boolean add(E e)

集合进阶 笔记_第5张图片

常用方法

集合进阶 笔记_第6张图片

c.add("Hello");//添加元素 boolean add(E e)
sout(c.add("Hello"));//返回boolean类型 是否添加成功啥的//add方法永远返回true
c.remove("Hello")//移除元素
sout(c.remove("Hello"));//返回boolean类型 是否移除成功啥的//remove方法移除成功返回true,失败返回false
c.clear()//清空集合中所有元素
c.contains("Hello")//判断集合中是否存在指定元素
sout(c.contains("Hello"));//返回boolean类型 是否存在//contains方法存在返回true,不存在返回false
c.isEmpty()//判断集合是否为空集合
sout(c.isEmpty());//返回boolean类型 是否为空//isEmpty方法集合为空返回true,集合不为空返回false
c.size()//判断集合长度

alt+7 打开一个窗口可以看到类的所有信息
集合进阶 笔记_第7张图片

集合的遍历

Iterator:迭代器,集合的专用遍历方式
集合进阶 笔记_第8张图片

Iterator it = c.iterator();//返回的是Iterator的具体的实现类Itr的对象,通过多态的方式得到的Itr的对象
it.next();//返回迭代中的下一个元素
it.hasNext();//在获取元素之前首先判断有没有元素 如果有就继续//如果迭代中具有更多元素 返回true

集合进阶 笔记_第9张图片
集合进阶 笔记_第10张图片
集合进阶 笔记_第11张图片

使用步骤

集合进阶 笔记_第12张图片
集合进阶 笔记_第13张图片

案例

集合进阶 笔记_第14张图片
集合进阶 笔记_第15张图片

List集合

在java.util包下,有序,存储和取出元素一致,存储的元素可以重复
集合进阶 笔记_第16张图片

特有方法

集合进阶 笔记_第17张图片

List list = new ArrayList();//创建List集合的对象
list.add("Hello");//添加元素 boolean add(E e)
list.add(1,"Hello");//在索引1位置添加元素hello,原来1索引位置元素向后移动一位
list.remove(index:1);//删除在索引1位置元素,**返回被删除的元素**
sout(list.remove(index:1));//输出被删除的元素
list.set(1,"Hello");//修改在索引1位置元素,修改为hello,返回被修改的元素
sout(list.set(index:1));//输出被修改的元素
list.get(index:1);//返回/获取在索引1位置元素

集合进阶 笔记_第18张图片

案例

集合进阶 笔记_第19张图片
集合进阶 笔记_第20张图片

并发修改异常

集合进阶 笔记_第21张图片
通过迭代器遍历添加元素会产生并发修改异常,因为实际修改集合次数和预期修改集合次数不一致
所以通过for循环遍历添加元素
其实就是迭代器是原来数组的,添加元素数组已经改变了就会显示异常,为了防止无限迭代
集合进阶 笔记_第22张图片
集合进阶 笔记_第23张图片

Listlterator 列表迭代器

是list集合特有的迭代器,可以从后面往前遍历
集合进阶 笔记_第24张图片
集合进阶 笔记_第25张图片
hasPrevious、previous逆向遍历,倒着输出

list.add();

在源码中ListItr把实际修改值赋给了预期修改值,所以不会出现并发修改异常

增强for循环

简化数组和Collection集合的遍历,内部其实是一个Iterator迭代器
集合进阶 笔记_第26张图片
集合进阶 笔记_第27张图片

案例

集合进阶 笔记_第28张图片
集合进阶 笔记_第29张图片
集合进阶 笔记_第30张图片

数据结构

是计算机存储、组织数据的方式,是指相互之间存在一种或多种特定关系的数据元素的混合

集合进阶 笔记_第31张图片
后进先出,先进后出
集合进阶 笔记_第32张图片

队列

先进先出,后进后出,因为入队列和出队列的方向在两端
集合进阶 笔记_第33张图片
集合进阶 笔记_第34张图片
集合进阶 笔记_第35张图片

数据结构之数组

集合进阶 笔记_第36张图片
集合进阶 笔记_第37张图片
集合进阶 笔记_第38张图片
集合进阶 笔记_第39张图片
集合进阶 笔记_第40张图片

List集合子类特点

image.png
集合进阶 笔记_第41张图片
集合进阶 笔记_第42张图片

案例

集合进阶 笔记_第43张图片
集合进阶 笔记_第44张图片

LinkedList集合特有功能

集合进阶 笔记_第45张图片
集合进阶 笔记_第46张图片

你可能感兴趣的:(java)