首页 > 代码库 > 关于set,list,map的理解
关于set,list,map的理解
java集合分为三种Set,List ,Map
(1)Collection:首先set跟list(接口)是兄弟,爹是collection,同时list又有儿子ArrayList,LinkedList,Vector。
Set有儿子HsahSet,TreeSet。
(2)Map:Map有三个儿子HashMap,HashTable,TreeMap。
一.来说Collection
1.有人想可以有一个自动扩展且无序的数组,所以List
2.有的人想有没有重复的数组,所以有了set
3.有人想有自动排序的组数,所以有了TreeSet,TreeList,Tree**
1)儿子List
ArrayList:是一个可改变大小的数组.当更多的元素加入到ArrayList中时,其大小将会动态地增长.内部的元素可以直接通过get与set方法进行访问,因为ArrayList本质上就是一个数组。
LinkedList:是一个双链表,在添加和删除元素时具有比ArrayList更好的性能.但在get与set方面弱于ArrayList.
Vector:和ArrayList类似,但属于强同步类。如果你的程序本身是线程安全的(thread-safe,没有在多个线程之间共享同一个集合/对象),那么使用ArrayList是更好的选择。正常情况下,大多数的Java程序员使用ArrayList而不是Vector,因为同步完全可以由程序员自己来控制。
更详细请参考http://www.2cto.com/kf/201312/261556.html
2)儿子Set
Set是最简单的一种集合。集合中的对象不按特定的方式排序,并且没有重复对象。 Set接口主要实现了两个实现类:
HashSet: HashSet类按照哈希算法来存取集合中的对象,存取速度比较快
TreeSet :TreeSet类实现了SortedSet接口,能够对集合中的对象进行排序。
1)儿子Map
预知后事如何,请听下回分解。
关于set,list,map的理解