Java中的Collection和List有什麼區別?何時,我該用哪個?Java中的Collection和List有什麼區別?
回答
首先:a List
是Collection
。然而,這是專門的Collection
。
A Collection
就是這樣:項目的集合。您可以添加內容,刪除內容,迭代內容並查詢內容中有多少內容。
一個List
增加了約的東西給它一個定義序列的信息:你可以在位置ñ獲得元素,你可以在位置ň添加元素,你可以在位置刪除元素ñ 。
在Collection
你不能這樣做:「該集合中的第5個元素」沒有定義,因爲沒有定義的順序。
還有其他專門的集合,例如Set
,它增加了它永遠不會包含相同元素兩次的功能。
是的,列表是一個有序的專業化的集合(但沒有排序)+1 – atamanroman 2010-07-23 11:09:07
Java中的列表擴展集合接口,並建立索引函數,這有助於基於位置的檢索和刪除行爲 – frictionlesspulley 2010-07-23 18:46:26
Collection
是java Collections層次結構的根接口。 List
是定義有序集合的一個子接口,其他子接口通常將存儲準備處理的元素(例如stack)。
下圖展示了不同的Java集合類型之間的關係:
真的很喜歡你的圖片,我在準備SCJP時看到它,但幾乎忘記了這些日子裏所有的東西。 – 2010-07-23 10:59:01
我必須承認,這個圖像是[從這個博客挖掘](http://www.programcreek.com/2009/02/the-interface-and-class-hierarchy-for-collections/)。我也首先在[K&B SCJP書](http://www.amazon.com/SCJP-Certified-Programmer-Java-310-065/dp/0071591060/)中看到了這樣的圖表。 – krock 2010-07-23 11:02:56
你可以從scjp證書中學到很多東西,大部分這個主題的書都很棒:) – atamanroman 2010-07-23 11:07:25
收集是描述可以包含其他對象的集合的Java對象的高級別接口。關於它們的訪問方式,相同對象的多個副本是否可以存在於同一個集合中,或者該順序是否重要,這並不是很具體。 清單具體是訂購的對象集合。如果您按照特定順序將對象放入列表中,它們將保持該順序。
決定在哪裏使用這兩個接口比決定使用什麼具體實現要重要得多。這將對您的程序的時間和空間性能產生影響。例如,如果你想要一個列表,你可以使用一個ArrayList或一個LinkedList,每一個都會對應用程序產生影響。對於其他集合類型(例如集合),類似的考慮因素適用。
Collection是List的超級接口,所以每個Java列表也是一個集合實例。集合只能按順序迭代(並且沒有特定順序),而列表允許通過get(int index)
方法訪問特定位置的元素。
的Java API就是最好的回答這個
收集
中的根接口在收集 層次。一個集合代表一個 對象組,稱爲其 元素。有些館藏允許 重複元素,而其他館藏則不允許。 一些是命令和其他無序。 JDK不提供此接口的任何直接 實現:它提供了更多 特定子接口(如Set和 列表)的實現。通常使用此接口 來傳遞集合,並且 在需要最大化通用性時操縱它們。
列表(擴展集)
有序的collection(也稱爲 序列)。此接口 的用戶可精確控制每個元素插入的 列表中的哪個位置。 用戶可以通過它們的 整數索引(列表中的位置), 來訪問元素,並搜索列表中的元素。
與集合不同,列表通常允許 重複的元素。更正式地, 列表通常允許成對的元素e1和e2,使得如果 完全允許空元素,則它們允許多個空元素。這不是 不可思議有人希望 實施禁止 副本列表,通過拋出運行時異常 當用戶試圖 插入它們,但我們希望這種用法 是罕見的。
集合是Java Collections層次結構的主要接口,而List(Sequence)是定義有序集合的子接口之一。
List和Set是Collection的兩個子類。
在列表中,數據特別是順序。
在Set中,它不能包含兩次相同的數據。
在集合中,它只是存儲沒有特定順序的數據,並且可以包含重複數據。
- 1. 有人可以告訴我List,Collection和Enumerable有什麼區別?
- 2. list + = str和list + = str有什麼區別,
- 3. Java中的Collection,ArrayList和List之間的主要區別是什麼?
- 4. Java中的Collection和AbstractCollection有什麼區別?
- 5. List接口和Collection接口的主要區別是什麼?
- 6. Java中Collection和Set接口有什麼區別?
- 7. @ + id/android:list和@ + id/list有什麼區別
- 8. Knockout.js observableArray vs Backbone.js Collection - 有什麼區別?
- 9. php(propel)中的collection和array有什麼區別?
- 10. List <Something>和List <?有什麼區別?擴展Something>?
- 11. Python中list [1]和list [1:]之間的區別是什麼?
- 12. `|。有什麼區別? `和`|| `在java中?
- 13. Java中boolean和Boolean有什麼區別?
- 14. java中float和float有什麼區別?
- 15. !=和=!有什麼區別!在Java中?
- 16. Java中> =和=>有什麼區別?
- 17. **/*。java和* .java有什麼區別?
- 18. `java -version`和`java -showversion`有什麼區別?
- 19. java 1.5和java 1.6有什麼區別
- 20. List聲明有什麼區別?
- 21. Python中的list和iterator有什麼區別?
- 22. Python中的List,Dictionary和Tuple有什麼區別?
- 23. Array聲明和Collection聲明之間有什麼區別
- 24. 在Lisp(Clojure,Emacs Lisp)中,list和quote有什麼區別?
- 25. 有什麼區別`和$(Bash中有什麼區別?
- 26. IEnumerable和Array,IList和List之間有什麼區別?
- 27. java ObjectOutputStream和OutputStream有什麼區別?
- 28. PHP和Java有什麼區別?
- 29. scala @Serializable和Java Serializable有什麼區別?
- 30. Java 8:Instant和LocalDateTime有什麼區別?
public interface List extends Collection {} – 2012-12-26 10:21:44