一、Collection 和 Collections 的區(qū)別
(更多相關(guān)面試題推薦:java面試題)
java.util.Collection 是一個(gè)集合框架的父接口。它提供了對(duì)集合對(duì)象進(jìn)行基本操作的通用接口方法。Collection接口在Java 類庫中有很多具體的實(shí)現(xiàn)。Collection接口的意義是為各種具體的集合提供了化的統(tǒng)一操作方式。
java.util.Collections 是一個(gè)包裝類。它包含有各種有關(guān)集合操作的靜態(tài)多態(tài)方法。此類不能實(shí)例化,就像一個(gè)工具類,服務(wù)于Java的Collection框架。他提供一系列靜態(tài)方法實(shí)現(xiàn)對(duì)各種集合的搜索、排序、線程安全化等操作。
二、Set 里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別?
==:
基本類型:比較的是值是否相同
引用類型:比較的是地址值是否相同
equals():
引用類型:默認(rèn)情況下,比較的是地址值,可進(jìn)行重寫,比較的是對(duì)象的成員變量值是否相同。
如果一個(gè)類沒有自己定義 equals 方法,它默認(rèn)的 equals 方法(從 Object 類繼承的)就是使用==操作符,也是在比較兩個(gè)變量指向的對(duì)象是否是同一對(duì)象,這時(shí)候使用equals 和使用==會(huì)得到同樣的結(jié)果,如果比較的是兩個(gè)獨(dú)立的對(duì)象則總返回 false。
如果你編寫的類希望能夠比較該類創(chuàng)建的兩個(gè)實(shí)例對(duì)象的內(nèi)容是否相同,那么你必須覆蓋 equals方法,由你自己寫代碼來決定在什么情況即可認(rèn)為兩個(gè)對(duì)象的內(nèi)容是相同的。
(相關(guān)教程推薦:java入門教程)
三、Iterator的作用是什么
用于遍歷集合中的元素,比for 和for each的好處:
不會(huì)因?yàn)楣?jié)點(diǎn)的刪除報(bào)異常,自己寫的數(shù)據(jù)結(jié)構(gòu)也可以實(shí)現(xiàn)它。
四、HashSet和TreeSet有什么區(qū)別,什么時(shí)候用它們?
基本的:
1、TreeSet 是二叉樹實(shí)現(xiàn)的,Treeset中的數(shù)據(jù)是自動(dòng)排好序的,不允許放入null值。
2、HashSet 是哈希表實(shí)現(xiàn)的,HashSet中的數(shù)據(jù)是無序的,可以放入null,但只能放入一個(gè)null,兩者中的值都不能重復(fù),就如數(shù)據(jù)庫中唯一約束。
3、HashSet要求放入的對(duì)象必須實(shí)現(xiàn)HashCode()方法,放入的對(duì)象,是以hashcode碼作為標(biāo)識(shí)的,而具有相同內(nèi)容的 String對(duì)象,hashcode是一樣,所以放入的內(nèi)容不能重復(fù)。但是同一個(gè)類的對(duì)象可以放入不同的實(shí)例 。
(視頻教程推薦:java視頻教程)
時(shí)間復(fù)雜度:
HashSet是由一個(gè)hash表來實(shí)現(xiàn)的, 因此,它的元素是無序的。 add(),remove(),contains()方法的時(shí)間復(fù)雜度是O(1)。
TreeSet是由一個(gè)樹形的結(jié)構(gòu)來實(shí)現(xiàn)的,它里面的元素是有序的。因此,add(),remove(),contains()方法的時(shí)間復(fù)雜度是O(logn)。
利用TreeSet保存自定義類對(duì)象的時(shí)候,自定義所在的類一定要實(shí)現(xiàn)Comparable接口,如果沒有實(shí)現(xiàn)這個(gè)接口那么就無法區(qū)分大小關(guān)系,而且在TreeSet中如果要進(jìn)行排序,那么就要將所有的字段都進(jìn)行比較,就是說在TreeSet中是依靠comparato()方法返回的是不是0來判斷是不是重復(fù)元素的。
TreeSet 依靠的是Comparable 來區(qū)分重復(fù)數(shù)據(jù);
HashSet 依靠的是hashCode()、equals()來區(qū)分重復(fù)數(shù)據(jù)。
當(dāng)前標(biāo)題:java經(jīng)典面試題集錦(八)
文章轉(zhuǎn)載:http://jinyejixie.com/article26/cphgcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站改版、企業(yè)建站、靜態(tài)網(wǎng)站、網(wǎng)站策劃
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)