1.概念
1.1.集合与数组的区别
集合:长度不固定,动态根据数据添加删除改变长度,只能存入引用类型,读取采用迭代器或其他方法。
数组:长度固定,不可改变,既可以存入基本类型也可以存入引用类型,读取使用索引(for)。
| 长度 | 存入类型 | 读取 | |
|---|---|---|---|
| 集合 | 长度不固定,动态的根据数据添加删除改变长度 | 只能存入引用类型 | 采用迭代器或其他方法 |
| 数组 | 长度固定,不可改变 | 既可以存入基本类型也可以存入引用类型 | 使用索引(for) |
1.2.集合分类
分为三类:List 类,Set 类,Map 类。
List 集合:集合里面元素有序,并且允许重复。
Set 集合:集合里面元素无序,并且不可重复(保证唯一性)。
Map 集合:集合采用键值对方式,key 唯一(不允许重复),value 没有要求。
| 是否有序 | 是否可重复 | |
|---|---|---|
| List | 有序 | 可重复 |
| Set | 无序 | 不可重复 |
1.3.Collection 和 Collections 的区别
Collection 是一个接口,给集合实现的,里面定义了一些操作集合的方法。
Collections 是一个工具类,位于 java.util 包中,可以直接使用该类操作集合(增删改,排序)。
1.4.集合遍历的方法
有六种方法:for,增强 for,迭代器,列表迭代器,forEach,Stream 流。
**for:**带索引查询(区分集合是否带索引,才能使用该方法)
List<String> list = Arrays.asList("A", "B", "C"); // 通过索引遍历(适合 ArrayList 等支持随机访问的集合)
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
**增强 for:**没有索引,直接遍历查询
List<String> list = Arrays.asList("A", "B", "C"); // 直接遍历元素(底层基于迭代器实现)
for (String item : list) {
System.out.println(item);
}
**迭代器:**在迭代器里面只能删除元素,不能插入元素


