list map set及所有子类 区别与使用总结
2009-11-18 11:01
260 查看
括号为是否线程安全list: LinkedList(no) ArrayList(no) Vector(yes) Stack(yes)map: HashMap(no) LinkedHashMap(no) HashTable(yes) WeakHashMap TreeMapset: HashSet(no) LinkedHashSet(no) SortedSet TreeSet最常用的好像为每行的前两个
特征:1. Linked开头的适合快速插入,删除元素, linked维护元素插入的次序2. Set 在 HashMap 的基础上实现, 所以Set结尾的key是不会重复的3. Tree开头的是每次改变发生排序的, 速度慢
适用:1. 需要快速插入,删除元素, 用 LinkedList; 需要快速随机访问元素,用 ArrayList2. 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/Set2. LinkedHashMap支持两种排序:插入顺序、访问顺序。前者是指按照插入时的顺序排序,后者是指按照最旧使用到最近使用的顺序3. 既然 Set 在 HashMap 的基础上实现, 那么 HashMap 和 HashSet 有什么区别吗?答: HashMap提供get和put方法, 允许null 值和null 键; HashSet 提供add、remove、contains和size方法, 允许null 元素; 其它未知
特征:1. Linked开头的适合快速插入,删除元素, linked维护元素插入的次序2. Set 在 HashMap 的基础上实现, 所以Set结尾的key是不会重复的3. Tree开头的是每次改变发生排序的, 速度慢
适用:1. 需要快速插入,删除元素, 用 LinkedList; 需要快速随机访问元素,用 ArrayList2. 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/Set2. LinkedHashMap支持两种排序:插入顺序、访问顺序。前者是指按照插入时的顺序排序,后者是指按照最旧使用到最近使用的顺序3. 既然 Set 在 HashMap 的基础上实现, 那么 HashMap 和 HashSet 有什么区别吗?答: HashMap提供get和put方法, 允许null 值和null 键; HashSet 提供add、remove、contains和size方法, 允许null 元素; 其它未知
相关文章推荐
- Java基础回顾--java IO流相关的类的分类和总结 3 【Java File类中list()、listFiles()的使用及区别,认识和使用匿名内部类】
- Query对象在获取表的所有的数据的时候,使用list()和 iterator()有什么区别?
- 【Hibernate】中Query对象在获取表的所有的数据的时候,使用list()和 iterator()有什么区别?
- [C#]泛型与非泛型集合类的区别及使用例程,包括ArrayList,Hashtable,List<T>,Dictionary<Tkey,Tvalue>,SortedList<Tkey,Tvalue>,
- Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)
- 各种数据库临时表的使用区别总结
- java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
- jackson的使用总结 jason对象xml list之间相互转换
- java 常用集合list与Set、Map区别及适用场景总结
- Java:ArrayList,LinkedList,Vestor的区别与使用
- java中list,map使用泛型和不使用的区别
- list map set 的区别
- java 常用集合list与Set、Map区别及适用场景总结
- SVN使用log,list,cat,diff查看所有及特定文件版本信息
- java 常用集合list与Set、Map区别及适用场景总结
- Java 中 Vector、ArrayList、List 使用 总结
- python里面的set、list、tuple区别和使用方法
- CSS3伪类选择器:nth-child(n)及:nth-of-type(n)使用区别探究总结
- Java集合框架总结――List接口的使用2
- IBatis.Net使用总结(一)-- IBatis解决SQL注入(#与$的区别)