集合的体系结构
单列集合
在jdk1.5 以前 Collection 父类
jdk1.5 以后 迭代器接口
两大体系
第一大体系
List(有序,可重复)
ArryaList : 底层是一个数组-> 查询快,有索引,底层连续(?),增删慢 ,长度固定
LinkedList(不强制要求大家记住他的api): 底层是一个双向链表 -> 双向链表 遍历效率可能高于单向链表 可以判断你要查找的元素是靠近头,还是靠近尾
add
addFirst
addLast
removeFirst
removeLast
第二大体系
Set(无序,不可重复)
HashSet(重要 : HashSet 不能重复的原因)
1.首先计算要存储元素的hashCode 值,通过hashCode 值和 数组长度 一起计算出来对应的
数组索引,如果数组索引上没有元素-->直接存储
2.如果有调用eqauls 方法
2.1 相等 :不存
2.2 不相等:存
LinkedHashSet
TreeSet |
|