先進先出:Queue。
add到尾部,remove在頭部。
一、數組
1、數組長度不可變。
2、只有在知道下標的情況下查找才高效。
3、刪除和插入的空間複雜度高。
4、新增簡單
二、HashMap
1、容量可變
2、可以根據Key通過hash算法得到索引、查找比數組簡單。
3、刪除和插入的時間複雜度比較高
4、 新增簡單
Vector:可以實現可增長的對象數組。它可以試用正數索引進行訪問,它的大小可以跟需要增大或者縮小。
使用時注意:
1、 如果需要插入大量對象,最好先預計好Vector的大小,這樣就減少了重分配Vector的大小的次數。
2、 此類實現了List,因此是Java集合框架的一部分。但是與新集合的實現不同的是,Vector是同步的。
3 、由Vector的Iterator和listIterator方法返回的迭代器是快速失敗的:如果在迭代器牀後的任意時間從結構上通過迭代器自身的remove或者add方法之外的任何其他方式修改了向量 ,則迭代器將拋出ConcurrentModificationException。因此面對併發的修改,迭代器很快就完全失敗。
Stack:表示先進先出的對象堆棧。繼承了Vector,但提供了五個操作(push、pop、empty、peek、search)對向量進行了擴展,允許將向量視爲堆棧。
TreeMap : 有序Map,可以實現元素有序插入,即每次插入新的元素時都會按照排序順序將其插入到合適位置。
1、其存儲結構是紅黑二叉排序樹,因此命名爲TreeSet。
2、元素重寫了 compareTo()方法或者在new TreeMap(comparator)時給定一個比較器即可。
TreeSet : 有序的List,其實際存儲容器就是TreeMap。
在new TreeSet(Comparator cmp)時,給定一個比較器就可以實現有順序的插入。