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面試題-集合框架篇三Java面試題框架
- Java:Collection集合、泛型Java泛型
- Java 的 Collection 與 List 集合Java
- Java Collection介面 ArrayList集合(容器)Java
- 一文搞懂所有Java集合面試題Java面試題
- 1307頁位元組跳動Java面試全套真題解析火了,Java面試問題集合Java面試
- 【Java集合】單列集合Collection常用方法詳解Java
- Java面試題:Java中的集合及其繼承關係Java面試題繼承
- 集合相關面試題面試題
- Android 面試題集合(2018)Android面試題
- Android基礎之Java集合框架CollectionAndroidJava框架
- 40個Java集合面試問題和答案,面試奇葩問題,你掌握了嗎?Java面試
- 那些經常被問的JAVA面試題(1)—— 集合部分Java面試題
- java多執行緒、集合和IO面試題_02Java執行緒面試題
- 【JAVA】【面試】【基礎篇】- 集合Java面試
- 這幾道Java集合框架面試題在面試中幾乎必問Java框架面試題
- 集合常見的面試題面試題
- Collection集合、List集合及其方法
- 通過面試題,讓我們來了解Collection面試題
- 容器(一)剖析面試最常見問題之 Java 集合框架面試Java框架
- 面試必備 之 Java 集合框架面試Java框架
- java集合面試重點總結Java面試
- BAT面試必備——Java 集合類BAT面試Java
- 好程式設計師Java培訓分享Java面試題集合篇一程式設計師Java面試題
- 好程式設計師Java培訓分享Java面試題集合篇二程式設計師Java面試題
- java.util.Collection集合方法:Collections.BinarySearch 方法Java
- 好程式設計師Java培訓分享Mybatis面試題集合程式設計師JavaMyBatis面試題
- java面試題Java面試題
- 超詳細的Java面試題總結(三)之Java集合篇常見問題Java面試題
- 好程式設計師Java培訓分享Java面試題之Java集合篇三程式設計師Java面試題
- 【Java面試】Java常見IO面試題!Java面試題
- 【Java面試】Java設計模式面試題!Java設計模式面試題
- 100道JAVA面試題+JAVA面試題參考答案Java面試題
- 基礎篇:JAVA集合,面試專用Java面試
- 【Java面試題】Java面試之多執行緒!Java面試題執行緒
- Collection集合的遍歷