一,關於Collection的框架的學習理解
Collection是Java的集合框架,存儲的是一維數據,他繼承了Iterable<T>接口。
其中有 List 和 Set還有Queue 繼承了 Collection的接口, 實現List接口的集合,加入數據的時候是按照順序加入數據的,而Set加入的時候內部有進行排序,並且不能重複。Queue是隊列,滿足先進先出。LinkedList實現了Queue的接口。
在Java中實現List的接口有:ArrayList LinkedList 以及 Vector 他們都實現了List
不同的是 ArrayList的內部是通過數組實現的,也就是存儲的物理地址是相鄰的,遍歷和查找很快,但是插入和刪除效率較低,還有當容量不夠的時候,整個數組的元素要複製到一個新產生的大的數組中,話費的代價是較大的。
Vector內部也是通過數組實現的,它和ArrayList不同的是,它是線程安全的,當容量不夠的時候它默認增長是一倍,而ArrayList是1.5倍,在不考慮多線程的情況下是不考慮它的,應爲要保證線程安全也是要話費代價的,效率比ArrayList慢
LinkList內部是採用鏈表的形式組織的,所以插入和刪除容易,但是查找遍歷較慢
實現Set的接口有 Hashset(無序不重複接口) HashMapSet (有序不重複接口) Treeset(有序不重複接口) 等等
所以使用這些集合類的時候,要注意區分它們