`
heisalittlebird
  • 浏览: 19433 次
文章分类
社区版块
存档分类
最新评论

java集合总结

 
阅读更多

集合

有序

重复

null

同步

排序

特殊描述

arraylist

×

×

随机访问快,更新慢特别是delete,

首选它,除非更新操作影响了性能了

linkedlist

×

×

更新快

vector

×

不建议用

 

 

 

 

 

 

 

hashset

×

×

√一个

×

×

首选,不会添加进重复的元素,就是添加重复元素后,

仍然只有一个这样的元素存在

treeset

×

×

×

不会添加进重复的元素,就是添加重复元素后,

仍然只有一个这样的元素存在

LinkedHashSet

×

√一个

×

×

不会添加进重复的元素,就是添加重复元素后,

仍然只有一个这样的元素存在

 

 

 

 

 

 

 

hashmap

×

×

√一个

×

×

首选,添加key重复的元素的时候会覆盖,key不能,

key重复就会把value覆盖了,value可以。

(有的人还是说是有序的,按照hashcode排序)

treemap

×

同上

×

添加key重复的元素的时候会覆盖,key不能,

key重复就会把value覆盖了,value可以

linkedhashmap

×

同上

×

×

添加key重复的元素的时候会覆盖

hashtable

×

×

×

×

hashtable和hashmap基本一样,

添加key重复的元素的时候会覆盖,

key不能,key重复就会把value覆盖了,value可以

注意,此实现不是同步的。如果多个线程同时访问一个 ArrayList 实例,而其中至少一个线程从结构上修改了列表,那么它必须 保持外部同步。(结构上的修改是指任何添加或删除一个或多个元素的操作,或者显式调整底层数组的大小;仅仅设置元素的值不是结构上的修改。)这一般通过对自然封装该列表的对象进行同步操作来完成。如果不存在这样的对象,则应该使用 Collections.synchronizedList 方法将该列表“包装”起来。这最好在创建时完成,以防止意外对列表进行不同步的访问:

List list = Collections.synchronizedList(new ArrayList(...));


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics