list map set总结

括号为是否线程安全 安全

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开头的是每次改变发生排序的, 速度慢 hash

 

适用: io

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支持两种排序:插入顺序、访问顺序。前者是指按照插入时的顺序排序,后者是指按照最旧使用到最近使用的顺序

相关文章
相关标签/搜索