Java Collection集合面試題
1、Java集合Collection框架是什麼?列出集合框架的一些好處?
在每一種程式語言都有集合的使用,最初的Java版本包含了幾類集合:向量,堆疊,雜湊表,陣列。但在更大的範圍使用是在Java 1.2中集合框架想出了該組的所有集合介面,實現和演算法。 Java集合的執行緒安全操作和使用泛型和併發集合類等。它還包括阻塞的介面及其實現在Java併發包。
集合框架的好處是:
使用核心集合類,而不需要實現我們自己的集合類,減少了開發工作。
使用經過測試的集合框架類提高程式碼質量。
使用JDK附帶的集合類減少程式碼維護的工作。
可重用性和互操作性
2、泛型集合框架的好處是什麼呢?
Java 1.5中附帶泛型和所有收集介面和介面實現的大量使用。泛型允許我們提供一個集合可以包含Object型別,所以如果你嘗試新增任何其他型別的元素,它會引發編譯時錯誤。這就避免了在執行時丟擲,因為你會得到編譯錯誤。泛型使程式碼更乾淨,因為我們並不需要使用溯型casting和instanceof檢查。它也增加了執行時的好處,因為不生成的做型別檢查位元組碼指令。
3、Java集合框架的基本介面是什麼?
Collection是集合層次的根。一個集合包含一組物件作為其元素。 Java平臺不提供任何直接實現這個介面。
Set 是一個不能包含重複的元素的集合。此介面模型代表數學Set的抽象,用來代表一組Set,如一副撲克牌。
List是有序集合,可以包含重複的元素。您可以從它的索引訪問任何元素。更像是動態長度的陣列列表。
一個Map是一個鍵對映值的物件。一個Map不能包含重複鍵:每個key只能對映一個值。
其他一些介面Queue, Dequeue, Iterator, SortedSet,SortedMap的和listIterator。
4、為什麼要集合不能繼承Cloneable和Serializable介面?
Collection介面指定一組稱為元素的物件。元素如何被組織取決於具體實現。例如,一些LIST實現允許重複的元素,而SET不允許。Collection是一種抽象表示,而克隆和序列化重在執行,應該是在Collection具體實現子類中根據具體元素組織情況來實現。因此,強制在所有實現都要有克隆和序列化是不夠靈活的,具有限制性。
5、為什麼MAP介面不實現Collection介面?
雖然Map介面和它的實現是集合框架的一部分,但是MAP不是集合,而且集合也不是地圖。因此,它實現集合介面沒有任何意義。
6、Iterator是什麼?
Iterator介面提供遍歷集合的方法。從一個集合中使用迭代方法,我們可以得到迭代器例項。迭代器允許呼叫者在迭代過程中從集合中刪除元素。
7、列舉Enumeration 和Iterator介面之間的差異是什麼?
列舉是快迭代兩倍,使用非常少的記憶體。列舉適合基本需求。但Iterator是更安全,因為它總是拒絕其他執行緒修改它正在迭代集合中的物件。
8、為什麼沒有方法像Iterator.add()將元素新增到集合?
這是語義不清,對於迭代一個集合,必須保證迭代的順序。但是請注意,ListIterator確實提供了一個add的操作,而且它保證迭代的順序。
9、為什麼迭代器沒有不用移動游標來直接獲得下一個元素的方法?
它可以基於當前Iterator介面之上實現,但很少使用,沒有意義。
10、Iterator和listIterator之間有什麼不同?
我們可以使用迭代器Iterator遍歷Set和List集合,而ListIterator只可以使用List。
迭代器遍歷只有向前的方向,而ListIterator可以用來在兩個方向遍歷。
ListIterator繼承Iterator介面,並配備了額外的功能,如新增元素,更換一個元素,能獲得上一個和下一個元素的索引位置。
Java高架構師、分散式架構、高可擴充套件、高效能、高併發、效能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分散式專案實戰學習架構師視訊免費獲取架構群:854180697 加群連結
相關文章
- Java集合-CollectionJava
- Java集合---面試題Java面試題
- Java:Collection集合、泛型Java泛型
- Java Collection介面 ArrayList集合(容器)Java
- Java 的 Collection 與 List 集合Java
- Java Collection、Map集合總結Java
- Java集合高頻面試題Java面試題
- Java 集合深入理解(3):CollectionJava
- 【Java集合】單列集合Collection常用方法詳解Java
- 集合框架-Collection集合框架
- Java面試題-集合框架篇三Java面試題框架
- 集合框架-Collection集合-2框架
- 集合框架-Collection集合-3框架
- JAVA集合詳解(Collection和Map介面)Java
- 集合框架-Collection集合總結框架
- Android基礎之Java集合框架CollectionAndroidJava框架
- Java 基礎(三)集合原始碼解析 CollectionJava原始碼
- 「譯」Java集合框架系列教程三:Collection介面Java框架
- 一文搞懂所有Java集合面試題Java面試題
- 40個Java集合面試問題和答案Java面試
- Java程式設計師集合框架面試題Java程式設計師框架面試題
- Java學習--java中的集合框架、Collection介面、list介面Java框架
- 集合框架小結-Collection框架
- Collection集合的遍歷
- Java面試題:Java中的集合及其繼承關係Java面試題繼承
- Java集合 Collection、Set、Map、泛型 簡要筆記Java泛型筆記
- java.util.Collection集合方法:Collections.BinarySearch 方法Java
- Swift之集合型別 (Collection Types)(集合篇)Swift型別
- 【Java】【集合】collection介面常見方法、集合轉陣列toArray()、帶ALL的方法Java陣列
- 集合相關面試題面試題
- java多執行緒、集合和IO面試題_02Java執行緒面試題
- 那些經常被問的JAVA面試題(1)—— 集合部分Java面試題
- Java集合系列之Collection與Map介面巨集觀把控Java
- 1307頁位元組跳動Java面試全套真題解析火了,Java面試問題集合Java面試
- 40個Java集合面試問題和答案,面試奇葩問題,你掌握了嗎?Java面試
- Java Stream和Collection比較:何時以及如何從Java API返回Stream而不是集合Collection? - TomaszKiełbowiczJavaAPI
- thinkphp5.x之Collection(集合)解析php集合PHP
- Java集合面試題(03) Java中HashMap和HashTable之間區別Java面試題HashMap