大二JAVA笔记 第二章
第二章:集合【开发应用重点+企业面试重点+考试重点】
一、集合
1. 概念:一种操作便利的对象容器,存储多个对象,多数情况下可替代数组。
2. 位置:所有集合的接口和相关实现类都是位于 java.util 包中
3. 从各个具体方面进行学习: 集合接口的主要特征 集合中的方法 其实现类 对应的技术 集合的遍历方式
4. 集合分类:
Collection集合
List集合
Set集合
Map集合
Map
二、Collection集合体系
1. 父接口:Collection接口
(1) Collection接口特点:以数据项存储数据类型为Object的对象
(2) Collection接口中的操作:
添加操作:传入一个目标对象进行添加
获取元素数量:返回当前集合所包含的目标对象个数 【重点
2. 子接口:List
重点
3. 子接口:Set
三、Map集合体系
该系统支持基于键值对的数据存储功能(key-value),其中键属性具有以下特点:其一为顺序无关且不带索引编号,并不允许存在多个相同的元素;而值属性同样具有顺序无关及不带索引编号的特点,并允许存在多个相同的元素。
2. 方法:

3. 实现类:HashMap
4. 遍历:
(1) 键遍历:
Set keys= stus.keySet(); // 获取所有的键
// 通过 遍历 set集合获取每一个键
for(String key:keys){
Student stu = stus.get(key); // 通过键获取对应的值
}
(2) 值遍历:
Collection cs= stus.values(); // 获取所有的值
// 通过遍历获取 集合中每个值
for(Student stu:cs){
System.out.println(stu);
}
(3) 键值对遍历:
Set> kvs=stus.entrySet(); // 获取所有的键值对
// 获取每个键值对
for(Map.Entry kv:kvs){
// 通过操作 Entry 获取对应的键 和 值
String s1=kv.getKey();
Student stu=kv.getValue();
System.out.println(s1+"-----"+stu);
}
5. 不同的实现类:
(1) HashMap: JDK 1.2 版本;非 thread-safe;性能较高;支持 null 作为 key 或 value。
(2) Hashtable: JDK 1.0 版本;thread-safe;性能较低;不允许 null 作为 key 或 value。
(3) LinkedHashMap: HashMap 的 subclass;按照元素插入顺序存储数据。
(4) Properties: subclass of Hashtable;要求 key 和 value 均为 String 类型;The most commonly used scenario is reading configuration files from a file.
(5) TreeMap: 实现 SortedMap 接口(属于 Map 子接口);实现该接口,并按键自动生成排序。
