目录
一、List 接口
1. 概述
2. List 接口中的抽象方法(特有)
3. List 遍历
二、ListIterator 接口
1.概述
2. ListIterator 接口的抽象方法
3. List 逆向遍历:
三、迭代器的并发修改异常
1. 迭代器的并发修改异常
2. 出现场景:
3. 原因:
四、ArrayList 、LinkedList 集合
1. ArrayList 集合
2. LinkedList 集合
3. Vector 集合(基本不用)
五、Set 接口
六、 HashSet (哈希表)
1. 特点
2. 哈希表的数据结构
3. 字符串对象的哈希值
4. 哈希表的存储过程
5. 哈希表的存储自定义对象
6. LinkedHashSet 集合
7. ArrayList,HashSet 判断对象是否重复的原因
七、TreeSet
1.概述
2. TreeSet如何实现,不能存储重复元素
3. 向TreeSet中放入,自定义的类的对象
4. 注意事项
一、List 接口
1. 概述
- 继承 Collection 接口,它是一个元素存取 有序 的集合
例如,存元素的顺序是11、22、33。那么集合中,元素的存储就是按照11、22、33的顺序完成的)
- 它是一个 带有索引 的集合,通过索引就可以精确的操作集合中的元素(与数组的索引是一个道理)
- 与 set 不同,List 中 可以有重复的元素,通过元素的 equals 方法,来比较是否为重复的元素
- List 接口的常用实现类有:
- ArrayList 集合
- LinkedList 集合
2. List 接口中的抽象方法(特有)
- add(int index, Object e) : 向集合指定索引处,添加指定的元素,原元素依次 后移
- remove(int index):将指定索引处的元素,从集合中删除,返回值为被删除的元素
- set(int index,E element):将指定索引处的元素,替换成指定的元素,返回值为替换前的元素
- get(int index):获取指定索引处的元素,并返回该元素
3. List 遍历
List a = new LinkedList<>();a.add(new Person("zs",10));a.add(new Person("lisi",20));a.add(new Person("wangwu",30));//利用Iterator来遍历ListIterator iterator = a.iterator();//利用迭代器对象遍历while(listItr.hasNext()) { System.out.println(listItr.next());}//List独有的遍历方式for (int i = 0; i < a.size(); i++) { System.out.println(a.get(i));}
二、ListIterator 接口
1.概述
- List 不仅有自己独有的迭代方式,还有自己独有的迭代器: ListIterator
2. ListIterator 接口的抽象方法
- add(E, e):将指定元素插入列表
- boolean hasPrevious():逆向遍历列表,若列表迭代器有多个元素,则返回 true,也就是判断是否有前一个元素
- previous() :返回列表的前一个