码迷,mamicode.com
首页 > 其他好文 > 详细

list map set总结

时间:2015-07-23 10:49:21      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

括号为是否线程安全

list: LinkedList(no) ArrayList(no) Vector(yes) Stack(yes)

map: HashMap(no) LinkedHashMap(no) HashTable(yes) WeakHashMap TreeMap

set: HashSet(no) LinkedHashSet(no) SortedSet TreeSet

最常用的好像为每行的前两个

 

特征:

1. Linked开头的适合快速插入,删除元素, linked维护元素插入的次序

2. Set 在 HashMap 的基础上实现, 所以Set结尾的key是不会重复的

3. Tree开头的是每次改变发生排序的, 速度慢

 

适用:

1. 需要快速插入,删除元素, 用 LinkedList; 需要快速随机访问元素,用 ArrayList

2. Vector 类似 ArrayList, 但是是同步的

3. Stack 继承 Vector , 是后进先出的堆栈

 

4. HashMap, put进去的对象位置会发生变化, LinkedHashMap 则不会

 

5. HashSet 是专门为快速查询而设计的, 插入会产生排序(LinkedHashSet 不会), 存入HashSet的对象必须定义hashCode方法

6. SortedSet 是保持元素的有序顺序的Set接口, 添加到 SortedSet 实现类的元素必须实现Comparable接口, TreeSet 类是它的唯一一份实现

 

 

其它:

1. 非同步的可以进行外部同步,或者使用Collections.synchronizedMap()的方法包装成一个thread-safe的Map/Set

2. LinkedHashMap支持两种排序:插入顺序、访问顺序。前者是指按照插入时的顺序排序,后者是指按照最旧使用到最近使用的顺序

list map set总结

标签:

原文地址:http://my.oschina.net/liting/blog/482610

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!