集合进阶

image.png
image.png
image.png

Collection集合

在java.util包下,没有具体的的实现类,必须使用子接口比如set和list实现
image.png

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

image.png

常用方法

image.png

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 打开一个窗口可以看到类的所有信息
image.png

集合的遍历

Iterator:迭代器,集合的专用遍历方式
image.png

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

image.png
image.png
image.png

使用步骤

image.png
image.png

案例

image.png
image.png

List集合

在java.util包下,有序,存储和取出元素一致,存储的元素可以重复
image.png

特有方法

image.png

List<String> list = new ArrayList<String>();//创建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位置元素

image.png

案例

image.png
image.png

并发修改异常

image.png
通过迭代器遍历添加元素会产生并发修改异常,因为实际修改集合次数和预期修改集合次数不一致
所以通过for循环遍历添加元素
其实就是迭代器是原来数组的,添加元素数组已经改变了就会显示异常,为了防止无限迭代
image.png
image.png

Listlterator 列表迭代器

是list集合特有的迭代器,可以从后面往前遍历
image.png
image.png
hasPrevious、previous逆向遍历,倒着输出

list.add();

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

增强for循环

简化数组和Collection集合的遍历,内部其实是一个Iterator迭代器
image.png
image.png

案例

image.png
image.png
image.png

数据结构

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

image.png
后进先出,先进后出
image.png

队列

先进先出,后进后出,因为入队列和出队列的方向在两端
image.png
image.png
image.png

数据结构之数组

image.png
image.png
image.png
image.png
image.png

List集合子类特点

image.png
image.png
image.png

案例

image.png
image.png

LinkedList集合特有功能

image.png
image.png


Loccy
4 声望1 粉丝