注意:
       泛型:几乎所有你会以泛型写的程序都与处理集合有关,泛型的作用让你写出有类型安全性的集合。在泛型中,除非与集合有关,否则都是用T,因为E很清楚的指明是元素。

 

Set:不能包含重复的元素。SortedSet是一个按照升序排列元素的Set
List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。Map:包含了key-value对。Map不能包含重复的keySortedMap是一个按照升序排列keyMap
ArrayList:我们可以将其看作是能够自动增长容量的数组。
利用ArrayListtoArray()返回一个数组。
Arrays.asList()返回一个列表。
迭代器(Iterator) 给我们提供了一种通用的方式来访问集合中的元素。

 

排序:Collections.sort()
       1自然排寻(natural ordering )
              Collections有个sort()方法,public static void sortList list);
       如果List中存储的为String类型的数据,则list中的元素会以字母的顺序排列。
       如果List中存储的不为String类型的数据,而是Object,则list中的元素不会按顺序排列,当让Object实现Comparable

 

       2实现比较器(Comparator)接口。
       3取最大和最小的元素:Collections.max()Collections.min()
       4在已排序的List中搜索指定的元素:Collectons.binarySearch()

 

 

LinkedListArraylist:

       LinkedList对于在中间的插入或删除会比较快,但对大多数的应用程序而言ArrayListLinkedList的差异有限,除非元素量真的很大。
       ArrayList底层采用数组完成,而LinkedList则是以一般的双向链表(double-linked list)完成,其内每个对象除了数据本身外,还有两个 引用,分别指向前一个元素和后一个元素。
       如果我们经常在List的开始处增加元素,或者在List中进行插入和删除操作,我们应该使用LinkedList,否则的话,使用ArrayList将更加快速。

 

HashSet
       实现Set接口的hash table(哈希表),依靠HashMap来实现的。
       我们应该为要存放到散列表的各个对象定义hashCode()equals()

 

TreeSet
TreeSet是依靠TreeMap来实现的。
TreeSet是一个有序集合,TreeSet中元素将按照升序排列,缺省是按照自然顺序进行排列,意味着TreeSet中元素要实现Comparable接口。
我们可以在构造TreeSet对象时,传递实现了Comparator接口的比较器对象。
HashSetTreeSet的比较
HashSet是基于Hash算法实现的,其性能通常都优于TreeSet。我们通常都应该使用HashSet,在我们需要排序的功能时,我们才使用TreeSet
HashMapTreeMap的比较
Set类似,HashMap的速度通常都比TreeMap快,只有在需要排序的功能的时候,才使用TreeMap
Java1.0/1.1的集合类
n       Vector:用ArrayList代替Vector
n       Hashtable:用HashMap代替Hashtable
n       Satck:用LinkedList代替Stack
n       Properties