java 集合的感概細節點

數組以及動態的 ArrayList 類。 

數組和數組列表 都有一個重大的缺陷。 這就是從數組的中間位置刪除一個元素要付出很大的代價, 其原因是 數組中處於被刪除元素之後的所有元素都要向數組的前端移動(見圖 9-6 。) 在數組中間的位 置上插入一個元素也是如此。

另外一個大家非常熟悉的數據結構一鏈表(linked list) 解決了這個問題。儘管數組在 連續的存儲位置上存放對象引用, 但鏈表卻將每個對象存放在獨立的結點中。每個結點還存 放着序列中下一個結點的引用。

Java 程序設計語言中, 所有鏈表實際上都是雙向鏈接的

(doubly linked) —即每個結點還存放着指向前驅結點的引用(

即需要更新被刪除元素附近的鏈接

 

在需要動態數組時, 可能會使用 Vector 類。 爲什麼要用 ArrayList 取代 Vector 呢? 原因很簡單: Vector 類的所有方法都是同步的。 可 以由兩個線程安全地訪問一個 Vector 對象。 但是, 如果由一個線程訪問 Vector, 代碼要 在同步操作上耗費大量的時間。 這種情況還是很常見的。 而 ArrayList 方法不是同步的, 因此, 建議在不需要同步時使用 ArrayList, 而不要使用 Vector。

 集合類==容器類

 容器類提供l完善的方法保存對象。

特性:  set對於每個值只保存一個對象, map: 允許你將某些對象與其它對象關聯起來的

關聯數組。

java容器類 都可以自動地調整自己的尺寸。 與數組不同,可以將任意數量的對象放置到容器中。

ArrayList :自動擴充自身尺寸的數組。

如果沒有顯示的聲明繼承那個類 ,那麼自動繼承object 。因爲ArrayList 保存的是Objcet 

當ArrayList 的get 取出的只是一個引用。

ArrayList<Apple>     不只是ArrayList  <>  類型參數可以有多個 指定容器實列可衣保存的類型

就可以防止在編譯期防止將錯誤類型的對像放入到容器中

Java 容器類庫的用途是 ”保存對象“

collection   一個獨立元素的序列 ,概括類序列 的概念--存放一組對象的發方式

 List 必須按照插入的順序保存元素 ,set不能有重複元素, 

queue 按照排隊規則來確定對象產生。

Map , 一組成對的 鍵值對 對象。

ArrayList   允許你使用 數字來查找值。 某種 數字和與對象關聯在一起

映射表 允許我們使用另一個對象來查找某個對象。

Arrays  collections 類中有很多的實用方法。

Arrays.asList  方法接受一個數組或是一個用逗號分隔的元素列表。

並將其轉換爲一個List對象。

collections.addAll() 方法接受一個Collection 對象。以及一個數組

或是一個用逗好分割列表,將元素添加到Collection中。

ArrayList 和LinkList 都是List類型,輸出可以看出,都是按照順許

保存元素 不同之處不僅於執某些類型的操作時的行性能。

HashSet, TreeSet 和LinkeHashSet 都是Set類型,輸出顯示Set中哦

任何容器類,都必須有某種可以插入元素並將他們在再次取回。

迭代器 是一個對象們, 他的工作是遍歷並選擇序列中的對象。

Set 不保存重複的元素。

HashSet 專門對快速查找進行了優化。

TreeSet 將元素存儲在紅黑樹數據結構中。

HashSet  散列函數

LinkedHashList  查詢速度的散列 鏈表 維護元素的插入順訊。

Map 將對象映射到其他對象的能力是一種解決編程問題的殺手鐗。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章