java中的集合類(lèi): Java集合類(lèi)提供了一套設(shè)計(jì)良好的支持對(duì)一組對(duì)象進(jìn)行操作的接口和類(lèi)。Java集合類(lèi)里面最基本的接口有: · Collection:代表一組對(duì)象,每一個(gè)對(duì)象都是它的子元素。 · Set:不包含重復(fù)元素的Collection。 · List:有順序的collection,并且可以包含重復(fù)元素。 · Map:可以把鍵(key)映射到值(value)的對(duì)象,鍵不能重復(fù)。 .數(shù)組(Array)和列表(ArrayList)有什么區(qū)別?什么時(shí)候應(yīng)該使用Array而不是ArrayList? 下面列出了Array和ArrayList的不同點(diǎn): · Array可以包含基本類(lèi)型和對(duì)象類(lèi)型,ArrayList只能包含對(duì)象類(lèi)型。 · Array大小是固定的,ArrayList的大小是動(dòng)態(tài)變化的。 · ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。 · 對(duì)于基本類(lèi)型數(shù)據(jù),集合使用自動(dòng)裝箱來(lái)減少編碼工作量。但是,當(dāng)處理固定大小的基本數(shù)據(jù)類(lèi)型的時(shí)候,這種方式相對(duì)比較慢。 ArrayList和LinkedList有什么區(qū)別? ArrayList和LinkedList都實(shí)現(xiàn)了List接口,他們有以下的不同點(diǎn): · ArrayList是基于索引的數(shù)據(jù)接口,它的底層是數(shù)組。它可以以O(shè)(1)時(shí)間復(fù)雜度對(duì)元素進(jìn)行隨機(jī)訪(fǎng)問(wèn)。與此對(duì)應(yīng),LinkedList是以元素列表的形式存儲(chǔ)它的數(shù)據(jù),每一個(gè)元素都和它的前一個(gè)和后一個(gè)元素鏈接在一起,在這種情況下,查找某個(gè)元素的時(shí)間復(fù)雜度是O(n)。 · · 相對(duì)于ArrayList,LinkedList的插入,添加,刪除操作速度更快,因?yàn)楫?dāng)元素被添加到集合任意位置的時(shí)候,不需要像數(shù)組那樣重新計(jì)算大小或者是更新索引。 · · LinkedList比ArrayList更占內(nèi)存,因?yàn)長(zhǎng)inkedList為每一個(gè)節(jié)點(diǎn)存儲(chǔ)了兩個(gè)引用,一個(gè)指向前一個(gè)元素,一個(gè)指向下一個(gè)元素。 ·
· HashSet和TreeSet有什么區(qū)別? · · · HashSet是由一個(gè)hash表來(lái)實(shí)現(xiàn)的,因此,它的元素是無(wú)序的。add(),remove(),contains()方法的時(shí)間復(fù)雜度是O(1)。 · 另一方面,TreeSet是由一個(gè)樹(shù)形的結(jié)構(gòu)來(lái)實(shí)現(xiàn)的,它里面的元素是有序的。因此,add(),remove(),contains()方法的時(shí)間復(fù)雜度是O(logn)。 · · Comparable和Comparator接口是干什么的?列出它們的區(qū)別。 Java提供了只包含一個(gè)compareTo()方法的Comparable接口。這個(gè)方法可以個(gè)給兩個(gè)對(duì)象排序。具體來(lái)說(shuō),它返回負(fù)數(shù),0,正數(shù)來(lái)表明輸入對(duì)象小于,等于,大于已經(jīng)存在的對(duì)象。 Java提供了包含compare()和equals()兩個(gè)方法的Comparator接口。compare()方法用來(lái)給兩個(gè)輸入?yún)?shù)排序,返回負(fù)數(shù),0,正數(shù)表明第一個(gè)參數(shù)是小于,等于,大于第二個(gè)參數(shù)。equals()方法需要一個(gè)對(duì)象作為參數(shù),它用來(lái)決定輸入?yún)?shù)是否和comparator相等。只有當(dāng)輸入?yún)?shù)也是一個(gè)comparator并且輸入?yún)?shù)和當(dāng)前comparator的排序結(jié)果是相同的時(shí)候,這個(gè)方法才返回true。
|