Collection集合
1. 概述
集合框架图:
2. Iterator迭代器
迭代器,即Collection集合元素的通用获取方式。在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续判断,如果还有就继续取,直到取完为止(就跟增强for循环一样)。
一般更改删除集合元素,使用Iterator迭代器
//迭代器遍历
Iterator<String> it = collection.iterator();
while (it.hasNext()){ //hasNext(),判断有没有下一个元素
String i = it.next(); //next(),获取下一个元素,指针移至下一位
System.out.println(i);
}
System.out.println("====================");
3. 增强for循环
增强for循环是用来遍历数组和集合的
遍历集合:
//增强for循环遍历
for (String s : collection){
System.out.println(s);
}
List集合
1. 概述
List接口:
- 父接口:Collection,Iterable
- 有序的集合(存储和取出的元素顺序相同)
- 允许存储重复的元素(包括null)
- 有索引,可以使用普通的for循环遍历
常用实现类:
ArrayList:
- 底层是动态数组实现
- 查询快
- 增删慢
- 线程不安全
LinkedList:
- 底层是链表实现
- 查询慢
- 增删快
Vector
- 线程安全
2. Collections类
emptyList():该方法会创建一个空的 List 集合, 但是这个 List 不能进行增删改的操作
作用:
- 减少内存开销
- 返回一个 size = 0 的 List,不需要校验是否为 null
Set集合
1. 概述
Set接口:
- 父接口:Collection,Iterable
- 无序
- 不允许存储重复元素
- 没有索引(不能使用普通的for循环遍历)
- 最多只能包含一个null元素
- 常用实现类:
- HashSet:
- 底层是哈希表+红黑树实现
- 查询速度快
- 存取无序
- HashSet:
- LinkedHashSet:
- 底层是哈希表+链表实现
- 存取有序
- TreeSet:
- 底层是二叉树实现
- 一般用于排序
2. 遍历Set集合
遍历Set集合,有两种方法:
迭代器遍历Iterator<String> it = set.iterator(); //创建迭代器
while(it.hasNext()){ // while循环,hasNext(),判断还有没有下一个元素
String key = it.next(); // next()取出集合中的下一个元素
}
增强for循环for(String key : map.keySet()){
Interger value = map.get(key);
}