Java集合框架 每博一文案 《殺死一隻知更鳥》中有這樣一段話:“你永遠不可能真正地瞭解一個人,除非你穿上他的鞋子走來走去,站在他的角度思考問題。 可真當你走過他的路時,你連路過都覺得難過。” 世上沒有真正的感同身受,也永遠不會有一模一樣的境遇。 很多時候,你以為看到了全貌,但其實只有冰山一角。永遠 ...
Java集合框架
每博一文案
《殺死一隻知更鳥》中有這樣一段話:“你永遠不可能真正地瞭解一個人,除非你穿上他的鞋子走來走去,站在他的角度思考問題。
可真當你走過他的路時,你連路過都覺得難過。”
世上沒有真正的感同身受,也永遠不會有一模一樣的境遇。
很多時候,你以為看到了全貌,但其實只有冰山一角。永遠不要憑著一點蛛絲馬跡,就隨意評判別人的人生。
在你看不到的角落裡,多的是你不知道的事。
不知別人的苦,就別勸人大度;沒有經歷過他人的難,就不要肆意嘲諷。
@
目錄1. 集合簡介
早在 Java 2 中之前,Java 就提供了特設類。比如:Dictionary, Vector, Stack, 和 Properties
這些類用來存儲和操作對象組。
雖然這些類都非常有用,但是它們缺少一個核心的,統一的主題。由於這個原因,使用 Vector
類的方式和使用 Properties
類的方式有著很大不同。
集合框架被設計成要滿足以下幾個目標。
- 該框架必須是高性能的。基本集合(動態數組,鏈表,樹,哈希表)的實現也必須是高效的。
- 該框架允許不同類型的集合,以類似的方式工作,具有高度的互操作性。
- 對一個集合的擴展和適應必須是簡單的。
為此,整個集合框架就圍繞一組標準介面而設計。你可以直接使用這些介面的標準實現,諸如: LinkedList, HashSet, 和 TreeSet 等,除此之外你也可以通過這些介面實現自己的集合。
集合也稱為容器,僅僅是一個對象,多個元素組成一個單元。集合用於存儲、檢索、操作和聚合數據。 通常,他們標識形成自然組的數據項,例如撲克牌(牌集合),郵件文件夾(字母集合)。
1.1 集合和數組的區別:
數組:
- 數組初始化以後,長度就是確定了的,無法修改的,不便於擴展。
- 數組聲明的類型,就決定了進行元素存儲的類型了,僅僅只能存儲一種數據類型。
- 數組中提供的屬性和方法少,不便於進行添加,刪除,插入等操作,且效率不高,同時無法直接獲取存儲元素的實際個數。
- 數組存儲的數據是有序的,可以重覆的,存儲數據的特點單一 。
集合:
- 集合的長度是可變的,不足時,會自動擴容,便於擴展。
- 集合可以存儲不同的類型(其實集合一般存儲的也是同一種類型),實際上集合存儲的是引用對象的地址值 。所以集合只能存儲一種類型引用數據類型 ,不可以存儲基本數據類型(可以存儲包裝類)。而數組既可以存儲基本數據類型,也可以存儲引用數據類型。
- 集合提供大量的屬性和方法,便於添加,刪除,插入,只能獲取到集合中存儲元素的實際個數 size()
- Java 集合類可以用於存儲數量不等的多個對象,還可用於保存具有映射關係的關聯數組。
2. 集合的使用場景
3. 集合框架概述
一個集合框架是用於表示和操作的集合統一架構。所有集合框架包含以下內容:
-
介面
這些是表示集合的抽象數據類型。介面允許獨立於它們的表示的細節來操縱集合。在面向對象語言中,介面通常形成層次結構。
-
實現
這些是集合介面的具體實現。實質上,它們是可重用的數據結構。
-
演算法
這些方法對實現集合介面的對象執行有用的計算,例如搜索和排序。演算法被認為是多態的: 也就是說,相同的方法可以用於適當的收集介面的許多不同的實現。實質上,演算法是可重用的功能。
Java集合可分為 Collection 和 Map 兩種體系。
- Collection 介面:單例數據,定義了存取一組對象的方法的集合。
- List : 元素有序,可重覆的集合。具體的詳細內容可以移步至:
- List : 元素有序,可重覆的集合。具體的詳細內容可以移步至: