- Collection:
- |--List:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
- | List 本身是 Collection 接口的子接口,具备了 Collection 的所有方法。现在学习 List 体系特有的共性方法,
- | 查阅方法发现 List 的特有方法都有索引,这是该集合最大的特点。
- |
- |--ArrayList:底层的数据结构是数组,线程不同步,ArrayList替代了Vector,查询元素的速度非常快。
- |
- |--LinkedList:底层的数据结构是链表,线程不同步,增删元素的速度非常快。
- |
- |--Vector:底层的数据结构就是数组,线程同步的,Vector无论查询和增删都巨慢。
- | |
- |--Set:元素无序,并且不可重复,线程不同步
- | | Set接口中的方法和Collection中方法一致的。Set接口取出方式只有一种,迭代器。
- |
- |--HashSet:底层数据结构是哈希表,线程是不同步的。无序,高效。
- | HashSet集合保证元素唯一性:通过元素的 hashCode 方法,和 equals 方法完成的。
- | 当元素的 hashCode 值相同时,才继续判断元素的 equals 是否为true。
- | 如果为true,那么视为相同元素,不存。如果为false,那么存储。
- | | 如果hashCode值不同,那么不判断equals,从而提高对象比较的速度。
- | |--LinkedHashSet:有序,hashset的子类。
- |
- |--TreeSet:底层的数据结构就是二叉树,对Set集合中的元素的进行指定顺序的排序。不同步。
- 用于对Set集合进行元素的指定顺序排序,排序需要依据元素自身具备的比较性。
- 如果元素不具备比较性,在运行时会发生ClassCastException异常。
- 所以需要元素实现Comparable接口,强制让元素具备比较性,复写compareTo方法。
- 依据compareTo方法的返回值,确定元素在TreeSet数据结构中的位置。
- 注:TreeSet方法保证元素唯一性的方式:就是参考比较方法的结果是否为0,如果return 0,视为两个对象重复,不存。
- Map:
- |--Hashtable:底层是哈希表数据结构,是线程同步的。不可以存储null键,null值。
- |
- |--HashMap:底层是哈希表数据结构,是线程不同步的。可以存储null键,null值。替代了Hashtable.
- |
- |--TreeMap:底层是二叉树结构,可以对map集合中的键进行指定顺序的排序。
- Map 集合遍历元素的两种方法:
- 1、通过keySet方法获取 Map 集合的键存入 Set 集合中,再对 Set 集合进行迭代获取键值,最后通过键获取对应的值。
- 2、通过entrySet方法获取 Map 集合中的所有对应关系,把这种关系以 Map.EntrySet类型存入Set集合中,再调用
-
- Map.Entry()中的getKey和getValue方法来获取键和值。
复制代码
|
|