Java Collections 面試問題和答案 [適合新手和有經驗者]
已發表: 2020-12-16如果您在本科階段處理過 Java 或使用過 Java,那麼您一定對 Java Collection 框架瞭如指掌。 對於剛開始 Java 之旅的初學者來說,Collection 框架是一個統一的架構,旨在存儲和操作一組(集合)對象。
本質上,“集合”代表一組對象。 Java 集合包括接口、類(ArrayList、Vector、Stack 和 Hashtable 等)以及具有用於存儲和處理數據的即用型架構的算法。
在本文中,我們將了解最常見的 Java Collections 面試問題。 我們創建了一個面試 Java 簡介面試候選人時通常會問的基本問題列表。 這應該可以幫助您了解在下一次面試中期待什麼樣的問題。
Java Collections 面試問答
1. 使用 Collections 框架有什麼好處?
Java Collections 包括用於線程安全操作的泛型和並發集合類。 此外,它配備了阻塞接口及其在 Java 並發包中的實現。 以下是 Java Collections 框架的一些好處:
它促進了代碼的可重用性和互操作性。

核心集合類的使用大大減少了開發工作和時間。
JDK 附帶的集合類減少了代碼維護所需的工作量。
2. 區分數組和集合。
儘管數組和集合用於存儲對象和操作數據,但它們有一些天生的區別:
- 您不能根據運行時要求增加或減少數組的長度——數組的大小是固定的。 但是,您可以根據縮放需要更改集合的大小。
- 數組只能存儲同質(相似或相同)對象,而集合可以存儲異構對象組。
- 雖然數組不提供針對用戶需求的即用型方法(搜索、排序、插入等),但集合始終包含即用型方法。
3. 泛型在 Collections 框架中的作用是什麼?
泛型允許您指定或定義集合可以存儲的對像類型。 如果您嘗試添加不同類型的元素,泛型將顯示編譯時錯誤。 因此,通過在編譯期間顯示錯誤,它有助於在運行時防止 ClassCastException。 此外,由於泛型消除了使用強制轉換和 instanceof 函數的需要,因此它使代碼乾淨而精確。
4. 命名集合框架的接口。
下面是 Collections 框架中的五個核心接口:
集合接口——它是 Java 集合層次結構的基礎。 Java 中的大多數集合都繼承自 Collections 接口。
列表接口——它是一個包含有序元素及其重複元素的擴展數組。 該接口支持基於索引的搜索。 因此,您可以從其索引訪問任何元素。 它是通過使用不同的類來實現的,如 ArrayList、LinkedList 等。
集合接口——它是一個不能包含重複元素的集合類。 與 List 不同的是,它不支持基於索引的搜索,也不為元素定義任何順序。 Set 對數學集合抽象進行建模,並由 HashSet、TreeSet、LinkedHashSet 等類實現。
Map接口——它是一種二維數據結構,以鍵值對的形式存儲數據。 雖然鍵是唯一的哈希碼,但值表示元素。 地圖不能有重複的鍵/元素。
隊列接口——此接口以先進先出 (FIFO) 方法排列元素。 因此,隊列接口中的元素從前端移除並從後端添加。
另請閱讀:如何編寫、編譯和運行 Java 項目
5. 什麼時候應該重寫 Java 中的 equals() 方法?
雖然 equals() 方法的初始實現會檢查兩個對像是否相似,但如果您希望根據它們的屬性比較對象,則必須重寫 equals() 方法。
6、使用Properties文件有好處嗎?
是的,在 Java 中使用 Properties 文件擴展了一個主要優勢——如果您更改此文件中的值,它將自動反映,而無需重新編譯 Java 類。 因此,Properties 文件主要用於存儲容易更改的信息(例如,用戶名和密碼)。它允許輕鬆管理 Java 應用程序。
7、Collection框架中Iterator的作用是什麼?
Iterator 是 java.util 包中的一個接口。 也稱為通用 Java 游標,迭代器幫助迭代對象集合。 Iterator 允許您一個一個地傳遞對象集合,並支持 READ 和 REMOVE 操作。 它被廣泛使用,因為 Iterator 方法名稱可以很容易地實現。
8. 如何對 Collection 對象進行排序?
在 Collections 框架中,排序通常使用Comparable和Comparator接口來實現。 如果使用 Collections.sort() 方法,它將根據 compareTo() 方法中指定的自然順序對元素進行排序。 但是,當您使用 Collections.sort(Comparator) 方法時,它會根據 Comparator 接口的 compare() 方法對元素進行排序。
閱讀:Java Swing 項目
9. 是否可以將 ArrayList 轉換為 Array 並將 Array 轉換為 ArrayList?
是的,可以這樣做。 您可以使用 Array 類的 asList() 函數將 Array 轉換為 ArrayList。 其語法如下:

Arrays.asList(項目)
您可以使用 ArrayList 類的 toArray() 函數將 ArrayList 轉換為 Array,如下所示:
List_object.toArray(新字符串[List_object.size()])
10. 如何反轉一個列表?
你將如何反轉一個 ArrayList?
您可以使用 Collections 類的 reverse() 函數反轉 ArrayList。 其語法如下:
公共靜態無效反向(集合 c)
11.什麼是“阻塞隊列”?
BlockingQueue 接口存在於 java.util.concurrent包中。 它的主要目的是通過激活阻塞來增強流控制,只要線程嘗試將空隊列出隊或將現有的滿隊列入隊。 BlockingQueue 接口不接受空值,如果嘗試插入空值,則會顯示 NullPointerException。
12. 解釋“優先隊列”。
優先級隊列是一種抽像數據類型,例如標準隊列或堆棧數據結構。 然而,在這個隊列中,每個元素都有一個獨特的特性,稱為“優先級”。 由於它基於優先級堆,因此優先級隊列在低優先級元素之前為高優先級元素提供服務,而不管它們的插入順序如何。 在優先級隊列中,元素要么根據自然順序進行排序,要么根據隊列構建時使用的比較器進行排序(取決於您使用的構造函數)。
13、HashSet類是如何存儲元素的?
HashSet 類是 Java Collections 框架的成員,它繼承了 AbstractSet 類並實現了 Set 接口。
HashSet 實現了一個用於創建和存儲元素集合的 Hashtable。 Hashtable 是 HashMap 類的一個實例,它使用散列機制在 HashSet 中存儲數據。 散列是指將信息轉換為稱為散列碼的唯一值的技術。 哈希碼索引與唯一鍵關聯的數據。
14. 是否可以在 TreeSet 或 HashSet 中添加空元素?
雖然您只能在 HashSet 中添加一個空元素,但您不能在 TreeSet 中這樣做,因為它使用 NavigableMap 來存儲元素。 NavigableMap 是 SortedMap 的子類型,不接受/支持空值。 如果將 null 元素插入 TreeSet,則會觸發 NullPointerException。
15.emptySet()函數有什麼作用?
在 Java 中, Collections.emptySet() 用於通過消除所有空元素來返回空的不可變集。 下面是聲明 emptySet() 的語法:
public static final <T> Set<T> emptySet()
16、為什麼Map接口沒有擴展Collection接口?
Map 接口遵循鍵值對結構,而 Collection 接口以結構化方式存儲對象集合,並具有定義的訪問機制。 Map 沒有擴展 Collection 接口,因為 Collection 接口的 add(E e) 函數不支持 Map 的 put(K key, V value) 函數的鍵值對模型。
17. 命名由 Map 接口擴展的不同 Collection 視圖。
Map 接口提供了三種鍵值對視圖,即:
- 鍵集視圖
- 值集視圖
- 條目集視圖
18.列出Java Hashmap的核心特性。
Hashmap 的基本特徵是:
- 您可以通過形成鍵值對來存儲元素,並通過將鍵傳遞給正確的方法來檢索值。
- 如果 Map 中不存在任何元素,則顯示 NoSuchElementException。
- 它只存儲對象引用,因此無法使用像 double 或 int 這樣的原始數據類型。 相反,您可以使用 Integer 或 Double 之類的包裝類。
必讀:Java 面試問答
19. 定義“堆棧”。

在 Java 中,堆棧表示計算機內存的指定區域,用於保存由函數創建的臨時變量。 變量在運行時在堆棧中被聲明、存儲和初始化。
20. 定義“大 O 符號”。
Big-O 表示法定義了與數據結構中元素數量相關的算法性能。 集合類是數據結構,因此,您需要使用 Big-O 表示法來根據內存、時間和性能來決定使用哪個集合實現。
報名參加世界頂尖大學的軟件工程課程。 獲得行政 PG 課程、高級證書課程或碩士課程,以加快您的職業生涯。
結論
如果您有興趣了解有關 Java 全棧軟件開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發執行 PG 計劃,該計劃專為工作專業人士設計,提供 500 多個小時的嚴格培訓,9+項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。
