Java中的集合框架
接口 | Collection | Map | |||
---|---|---|---|---|---|
子接口 | List | Queue | Set | 子类 | Entry(键值对) |
实现类 | ArrayList | LinkedList | HashSet | HashMap |
List接口及其实现类-ArrayList
List是元素有序且可重复的集合,称为序列
可以精确插入删除某个位置的元素
ArrayList-数组序列,是List的一个重要实现类
ArrayList底层是由数组实现的
Set接口及其实现类-HashSet
Set是元素无序且不可重复的集合,称为集
Hash-哈希集,是Set的一个重要实现类
Map接口-实现类HashMap
- Map提供了一种映射关系,其元素以键值对<key,value>的形式储存,能实现通过key快速寻找到value
- Map中的键值对以Entry类型的对象实例形式存在
- 键不可重复,值可以
- 每个键最多只能映射一个值
- Map支持泛型
- Hash中的Entry对象是无序排列的
- Key值和Value值都可以为null,但一个HashMap只能有一个key值为null的映射(因为key不可重复)
List,Set,Map中的方法
List的contains方法的实现原理
取出List中的每一个元素使用其equals方法与contains方法参数进行对比,一般要对元素类型进行equals方法重写.
List的indexOf方法和lastIndexOf方法
Set的contains方法的实现原理
因为Set是用HashSet类实现,所以Set中的元素使用contains方法时不仅会有equals对比,还有哈希码的比较.因此需要对元素类型进行HashCode和equals方法的重写.