搜尋
首頁JavaJava面試題java經典面試題集錦(八)

java經典面試題集錦(八)

Jul 16, 2020 pm 05:11 PM
java面試題

java經典面試題集錦(八)

一、Collection 與Collections 的差異

(更多相關面試題推薦:java面試題

java.util.Collection 是一個集合框架的父介面。它提供了對集合物件進行基本操作的通用介面方法。 Collection介面在Java 類別庫中有很多具體的實作。 Collection介面的意義是為各種具體的集合提供了最大化的統一操作方式。

java.util.Collections 是一個包裝類別。它包含有各種有關集合運算的靜態多型方法。此類別不能實例化,就像一個工具類,服務於Java的Collection框架。他提供一系列靜態方法實現對各種集合的搜尋、排序、線程安全化等操作。

二、Set 裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用==還是equals()?它們有何差別?

==:

基本類型:比較的是值是否相同

#引用類型:比較的是位址值是否相同

equals ():

引用類型:預設情況下,比較的是位址值,可進行重寫,比較的是物件的成員變數值是否相同。

如果一個類別沒有自己定義equals 方法,它預設的equals 方法(從Object 類別繼承的)就是使用==運算符,也是在比較兩個變數指向的物件是否是相同對象,這時候使用equals 和使用==會得到相同的結果,如果比較的是兩個獨立的物件則總回傳false。

如果你寫的類別希望能夠比較該類別創建的兩個實例物件的內容是否相同,那麼你必須覆寫equals方法,由你自己寫程式碼來決定在什麼情況即可認為兩個對象的內容是相同的。

(相關教學推薦:java入門教學

三、Iterator的作用是什麼

用於遍歷集合中的元素,比for 和for each的好處:

不會因為節點的刪除報異常,自己寫的資料結構也可以實現它。

四、HashSet和TreeSet有什麼差別,什麼時候用它們?

基本的:

1、TreeSet 是二元樹實現的,Treeset中的資料是自動排好序的,不允許放入null值。

2、HashSet 是哈希表實現的,HashSet中的資料是無序的,可以放入null,但只能放入一個null,兩者中的值都不能重複,就如資料庫中唯一約束。

3、HashSet要求放入的對象必須實作HashCode()方法,放入的對象,是以hashcode碼作為標識的,而具有相同內容的String對象,hashcode是一樣,所以放入的內容不能重複。但是同一個類別的物件可以放入不同的實例 。

(影片教學建議:java影片教學

時間複雜度:

HashSet是由一個hash表來實現的,     因此,它的元素是無序的。       add(),remove(),contains()方法的時間複雜度是O(1)。

TreeSet是由一個樹狀圖的結構來實現的,它裡面的元素是有順序的。因此,add(),remove(),contains()方法的時間複雜度是O(logn)。

利用TreeSet保存自訂類別物件的時候,自訂所在的類別一定要實作Comparable接口,如果沒有實作這個介面那麼就無法區分大小關係,而且在TreeSet中如果要進行排序,那麼就要將所有的字段都進行比較,就是說在TreeSet中是依靠comparato()方法返回的是不是0來判斷是不是重複元素的。

TreeSet 依賴的是Comparable 來區分重複資料;

HashSet 依賴的是hashCode()、equals()來區分重複資料。

以上是java經典面試題集錦(八)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:csdn。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器