Java面試題集錦04—數(shù)組和集合的使用

14.new Object[5]語(yǔ)句是否創(chuàng)建了5個(gè)對(duì)象
答案為否。題目的語(yǔ)句其實(shí)是創(chuàng)建了一個(gè)數(shù)組實(shí)例,長(zhǎng)度為5,每個(gè)數(shù)組元素的值均是null,并沒有創(chuàng)建5個(gè)Object對(duì)象。如果需要?jiǎng)?chuàng)建5個(gè)Object對(duì)象,則需要為每個(gè)數(shù)組元素分別指定。

15.什么是集合
集合是用來也只能存儲(chǔ)其他對(duì)象的對(duì)象,代表了一種底層結(jié)構(gòu),用于擴(kuò)展數(shù)組的功能。集合框架由一系列的接口和實(shí)現(xiàn)類組成,基本包括:列表(List)、集合(Set)、映射(Map)等,它們大多具有可迭代性和可比較性。

16.迭代器是什么
迭代器,提供一種訪問一個(gè)集合對(duì)象中各個(gè)元素的途徑,同時(shí)又不需要暴露該對(duì)象的內(nèi)部細(xì)節(jié)。Java通過提供Iterable和Iterator兩個(gè)接口來實(shí)現(xiàn)集合類的可迭代性。迭代器主要的用法就是,首先用hasNext()作為循環(huán)條件;再用next()方法得到每一個(gè)元素;最后再進(jìn)行相關(guān)的操作。

17.比較器是什么
比較器是把集合或數(shù)組的元素強(qiáng)行按照指定方法進(jìn)行排序的對(duì)象,它是實(shí)現(xiàn)了Comparator接口類的實(shí)例。如果一個(gè)集合元素的類型是可比較的(實(shí)現(xiàn)了Comparable接口),那么它就具有了默認(rèn)的排序方法,比較器則是強(qiáng)行改變它默認(rèn)的比較方式來進(jìn)行排序?;蛘哂械募显夭豢杀容^(沒有實(shí)現(xiàn)Comparable接口),則可用比較器來實(shí)現(xiàn)動(dòng)態(tài)的排序。

18.Vector與ArrayList的區(qū)別
Vector是線程安全的,因?yàn)樗僮髟氐姆椒ǘ际峭椒椒ǎ鳤rrayList則不是。開發(fā)過程中應(yīng)該根據(jù)需要進(jìn)行選擇,如果需要保證線程安全的地方則需要使用Vector,而不必要的時(shí)候則無需使用Vector,因?yàn)锳rrayList效率會(huì)高一些。

19.HashMap和HashTable的區(qū)別
HashMap和HashTable的區(qū)別主要有以下幾個(gè)方面

  • HashTable的方法是同步的,HashMap不能同步,所以在多線程場(chǎng)合要使用HashTable,這個(gè)區(qū)別就像Vector和ArrayList一樣
  • HashTable不允許null值(Key和value都不可以),HashMap允許null值(Key和value都可以)
  • HashTable有一個(gè)contains()方法,功能和containsValue()功能一樣
  • HashTable使用Enumeration遍歷,而HashMap使用Iterator進(jìn)行遍歷
  • HashTable與HashMap中的hash數(shù)組的初始化大小及其增長(zhǎng)方式不同
  • 哈希值的使用不同,HashTable直接使用對(duì)象的hashCode,而HashMap會(huì)重新計(jì)算hash值

20.集合使用泛型帶來了什么好處
集合使用泛型以后,可以達(dá)到元素類型明確的目的,避免了手動(dòng)類型轉(zhuǎn)換的過程,同時(shí),也讓開發(fā)者更加明確容器保存的是什么類型的數(shù)據(jù)

21.如何把集合對(duì)象中的元素進(jìn)行排序
對(duì)于沒有排序功能的集合來說,都可以使用java.util.Collections.sort()方法進(jìn)行排序,它除了集合對(duì)象以外,還需要提供一個(gè)比較器。如果列表中的元素全都是相同類型的,并且這個(gè)類實(shí)現(xiàn)了Comparable接口,可以簡(jiǎn)單地調(diào)用Collections.sort(),如果這個(gè)類沒有實(shí)現(xiàn)Comparator,就可以傳遞一個(gè)Comparator實(shí)例作為sort()的第二個(gè)參數(shù)進(jìn)行排序。另外,如果不想使用默認(rèn)的分類順序進(jìn)行排序,同樣可以傳遞一個(gè)Comparator實(shí)例作為參數(shù)來進(jìn)行排序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚_t_閱讀 34,734評(píng)論 18 399
  • 1.Java集合框架是什么?說出一些集合框架的優(yōu)點(diǎn)? 每種編程語(yǔ)言中都有集合,最初的Java版本包含幾種集合類:V...
    Oneisall_81a5閱讀 962評(píng)論 0 10
  • 1.Java集合框架是什么?說出一些集合框架的優(yōu)點(diǎn)? 每種編程語(yǔ)言中都有集合,最初的Java版本包含幾種集合類:V...
    獨(dú)念白閱讀 883評(píng)論 0 2
  • 1.Java集合框架是什么?說出一些集合框架的優(yōu)點(diǎn)? 每種編程語(yǔ)言中都有集合,最初的Java版本包含幾種集合類:V...
    hutuxiaogui閱讀 729評(píng)論 0 10
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,265評(píng)論 0 62

友情鏈接更多精彩內(nèi)容