黑马程序员技术交流社区
标题:
集合简述
[打印本页]
作者:
Huberry
时间:
2014-8-24 17:44
标题:
集合简述
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方法来获取键和值。
复制代码
作者:
paozhuanyinyu
时间:
2014-8-24 23:40
老兄,你至少修改一下撒,直接照搬。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2