而根據目的的不同,在 container 的選擇上也有所不同,例如:
- List:循序索引的串列結構
- Set:不允許相同物件存在的集合結構
- Map:使用 Key-Value(鍵-值) 方式儲存的結構
在 Java SE 中,Collection 包含了 List 以及 Set。
首先先認識一下 List ,其為 java.util.Collection interface 的 sub interface,而 Collection interface 則是擴充了 Iterable interface,因此其關係如下:
Iterable --> Colllection --> List而在 J2 SE 5.0 之後,由於增加了 Generic 的功能,因此許多這一類的 Class 都使用 Generic 的功能重新改寫了,因此在查詢 API 時常常會發現 Generic 的使用。
而 List 的特性在於:每個 List 中的元素都是循序加入的,並可透過 index 來存取元素。
然而,List 可使用 Array(java.util.ArrayList) 或是 Linked List(java.util.LinkedList) 來進行實作。而每一種不同的資料結構,適用的情況也不同:
- ArrayList:處理循序加入以及存取元素方面,效率較佳
- Linked List:處理經常變動元素排列順序時,效率較佳
ArrayList
使用 Array 結構實作 List,而其特性為 index 的應用,因此對於快速取得隨機 object 上效率叫好,但在新增或刪除 object 上,速度就會比 Linked List 慢上許多。
沒有留言:
張貼留言