黑马程序员技术交流社区
标题:
java中集合的总结及注意事项
[打印本页]
作者:
adamjy
时间:
2014-4-21 22:05
标题:
java中集合的总结及注意事项
本帖最后由 adamjy 于 2014-4-22 12:39 编辑
以下是对java中集合的总结,以及使用时的注意事项,欢迎大家补充。。
a、 Collection和 Collections的关系:
Collection是一个集合的接口,Collection接口在Java类库中有很多具体的实现,List、Set、Queue等。Collection
接口是为各种具体的实现其的集合提供了统一操作方式。
Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。Collections类不能实例化,就像一个工具类,
服务于Java的Collection框架。
b、List和Set的异同点:
相同:List和Set接口都继承自Collection。
不同:List允许集合内元素重复,而Set则不允许;List中的元素是有序的,而Set中的元素是无序的,List中的元素可通过
get(i)方法获得。
c、Map提供key到value的映射。一个Map中不能包含相同的key,每个key只能映射一个 value。Map的内容可以被当作一
组key集合,一组value集合,或者一组key-value映射。Map中的常用类如下,
Hashtable类:Hashtable继承Map接口,实现一个key-value映射的哈希表。任何非空(non-null)的对象都可作为key
或者value。Hashtable通过initial capacity和load factor两个参数调整性能。通常缺省的load factor 0.75较好地实现了
时间和空间的均衡。增大load factor可以节省空间但相应的查找时间将增大,这会影响像get和put这样的操作。Hashtable
是同步的。
HashMap类:HashMap和Hashtable类似,不同之处在于HashMap是非同步的,并且允许null value和null key。但是
将HashMap视为Collection时(values()方法可返回Collection),其迭代子操作时间开销和HashMap 的容量成比例。
因此,如果迭代操作的性能相当重要的话,不要将HashMap的初始化容量设得过高,或者load factor过低。
WeakHashMap类:WeakHashMap是一种改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,
那么该key可以被GC回收。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2