首页 > 代码库 > 关于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的理解