Java学习笔记——Collection集合

1. 定义

  • Collection单列集合,每个数据一个值
  • Map是双列集合,每个数据两个值

在这里插入图片描述

  1. List 系列集合 :添加的元素是有序的、可重复、有索引。
    ArrayList、LinkedList:有序的、可重复、有索引
  2. Set 系列集合 :添加的元素是无序的、不重复、无索引。
    HashList:无序、不重复、无索引
    LinkedHashSet: 有序、不重复、无索引
    TreeSet: 按照大小默认升序排序

在这里插入图片描述

在这里插入图片描述

从图中可以看出:
1.List是按存储的顺序排列,是有序的;Set没有按存储的顺序排列,时无序的
2.List可以存储重复的数据;Set不能存储重复的数据
3.List可以通过索引查询数据;Set不可以

2. Collection常用功能

方法名描述
public boolean add(E e)在集合中添加一个元素
public boolean remove(E e)从集合中移除一个元素
public boolean contains(Object obj)检查集合中是否包含指定元素
public int size返回集合中元素的数量
public boolean isEmpty检查集合是否为空
public void clear清空集合中的所有元素
public Object[] toArray将集合转化为数组

在这里插入图片描述

3. Collection的遍历方式

3.1 迭代器遍历

迭代器是用来便利集合的专用方式
主要核心代码:

        Iterator<String> it = names.iterator();
        while (it.hasNext()) {
            String name = it.next();
            System.out.println(name);
        }

这段代码的功能是使用迭代器遍历 ArrayList 集合,并打印出集合中的每个元素。
1.创建迭代器:Iterator it = names.iterator(); 创建一个迭代器对象 it,用于遍历 names 集合。
2.遍历集合:使用 while 循环和 it.hasNext() 方法检查迭代器是否还有下一个元素。如果有,进入循环体。
3.获取并打印元素:在循环体内,使用 it.next() 方法获取当前元素,并将其赋值给 String name,然后打印 name。
流程图:
在这里插入图片描述
运行结果:

在这里插入图片描述
Notice:

  • 得到迭代器对象,默认指向当前集合的索引0,以下为理解:
    因为我们如果直接点击查看iterator的实现,会进入到Collection的类中,而我们要查看的是ArrayList实现类中的迭代器的实现,所以先通过将Collection names=new ArrayList<>();改写为实现类的方法,如图所示。然后找到具体的iterator的实现类。
    在这里插入图片描述
    在这里插入图片描述
    由上图中可知,cursor为下一个要返回的元素的索引,根据 Java 的语言规范,类的实例变量如果没有显式初始化,会自动初始化为其类型的默认值。对于 int 类型,默认值是 0,所以默认的索引值为0

  • 通过迭代器获取元素不能越界,越界就会出现NoSuchElementException异常,理解
    下图中,cursor!=size,判断 cursor 是否等于 size。如果不等于,说明还有元素可以返回,返回 true;否则返回 false,所以不能越界
    在这里插入图片描述

3.2 增强for循环

for(元素的数据类型 变量名:数组或者集合){
}
  • 增强for可以用来遍历集合或者数组
  • 增强for本质解释迭代器遍历集合的简化写法
    在这里插入图片描述

3.3 Lambda表达式

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值