Java集合框架概述
集合的概述
集合是用来存储引用类型数据的容器
集合的使用场景
Java 集合可分为 Collection 和 Map 两种体系
Collection接口方法
1、添加
- add(Object obj)
- addAll(Collection coll)
- **2、获取有效元素的个数
- int size(),获取的是元素的个数,而不是底层数据的长度**
3、清空集合 - void clear()
4、是否是空集合 - boolean isEmpty()
5、是否包含某个元素 - boolean contains(Object obj):是通过元素的equals方法来判断是否是同一个对象
- boolean containsAll(Collection c):也是调用元素的equals方法来比较的。拿两个集合的元素挨个比较。
6、删除 - boolean remove(Object obj) :通过元素的equals方法判断是否是要删除的那个元素。只会删除找到的第一个元素
- boolean removeAll(Collection coll):取当前集合的差集
7、取两个集合的交集 - boolean retainAll(Collection c):把交集的结果存在当前集合中,不影响c
8、集合是否相等 - boolean equals(Object obj)
9、转成对象数组 - Object[] toArray()
10、获取集合对象的哈希值 - hashCode()
11、遍历 - iterator():返回迭代器对象,用于集合遍历
Iterator迭代器接口
Iterator概述
Iterator接口的方法
集合的遍历操作
迭代的错误方式
使用 foreach 循环遍历集合元素
Collection子接口之一:List接口
List接口概述
List接口方法
List实现类之一:ArrayList
ArrayList源码分析
ArrayList三种遍历的方式
List实现类之二:LinkedList
面试题
LinkedList源码分析
List 实现类之三:Vector
Collection子接口之二:Set接口
Set 接口概述
Set接口中没有额外定义新的方法,使用的都是CoLLection中声明过的方法。
Set实现类之一:HashSet
Set实现类之二:LinkedHashSetSet
Set实现类之三:TreeSet
自然排序
定制排序
练习:在List内 去除重复数字值,要求尽量简单
【面试题】
因为set删除是根据p1的哈希值找到他,再删除的,由于p1在删除之前里面的数据发生了改变,所以p1的哈希值也改变了,set删除的是之前的p1,而改过里面值的p1没有被删除。所以得到小面的结果。