譯者:荔枝殼 原文鏈接:http://www./2015/07/collections-interview-questions-java.html 小象科技原創(chuàng)作品,歡迎大家瘋狂轉(zhuǎn)發(fā); 機構(gòu)、自媒體平臺轉(zhuǎn)載務(wù)必至后臺留言,申請版權(quán)。 · Set是無序集合,并且不允許重復(fù)的元素 · List是有序的集合,并且允許重復(fù)的元素 · 而Map是鍵值對 · 它被視為是鍵的set和值的set的組合 · Map被設(shè)計為鍵值對的集合,所以不需要繼承Collection 接口 · 同步或線程安全 · Null鍵和Null值 · 迭代值 · 默認容量大小 · comparable接口實際上是出自java.lang包 · 它有一個 compareTo(Object obj)方法來將objects排序 · comparator接口實際上是出自 java.util 包 · 它有一個compare(Object obj1, Object obj2)方法來將objects排序 · 對objects數(shù)組進行排序,我們可以用Arrays.sort()方法 · 如果要對objects的集合進行排序,需要使用Collections.sort()方法 · Fail fast快速地報告任何的failure。無論何時任何一個問題都會引發(fā) fail fast系統(tǒng)fails · 在Java Fail fast 迭代器中,迭代objects集合有時會出現(xiàn)并發(fā)修改異常,出現(xiàn)這種情況有2個原因 · 如果一個線程正在迭代一個集合,而另一個線程同時試圖修改這個集合 · 在調(diào)用remove()方法后,如何我們還試圖去修改集合object · Enumeration接口在Java1.2版本開始有,所以Enumeration是合法規(guī)范的接口 · Enumeration使用elements()方法 · Iterator對所有Java集合類都有實現(xiàn) · Iterator使用iterator方法 · Iterator只能往一個方向前進 · ListIterator僅僅對List類型的類實現(xiàn)了 · ListIterator使用listIterator()方法 · Set是一個不允許重復(fù)元素存在的集合 · Set沒有索引 · Set僅僅允許一個null值 · Set有類:HashSet、LinkedHashMap、TreeSet · List有索引 · List允許N個null值 · List可以按插入順序顯示 · List有類:Vector、ArrayList、LinkedList · Vector 在Java的第一個版本就引入了,也就是說vector是一個合法規(guī)范的類 · ArrayList在Java1.2版本引入的,是Java 集合框架的組成部分 · Vector是同步的 · ArrayList是不同步的 · ArrayList · LinkedList · Vector · HashSet · LinkedHashSet · TreeSet · Vector, Hashtable, Properties 和 Stack 都是同步的類,所以它們都線程安全的,可以被使用在多線程環(huán)境中 · 使用Collections.synchronizedList(list)) 方法,可以保證list類是線程安全的 · 使用java.util.Collections.synchronizedSet()方法可以保證set類是線程安全的 · 可以往 hashset 中添加一個 null · TreeSet 也允許一個 null值 · Iterator 設(shè)計模式 · HashSet 內(nèi)部實現(xiàn)了hashmap · List和Set唯一繼承 Collection 接口 · SortedMap 繼承了 Map 接口 · hashCode() 和 equals() 方法定義在'object'類中 · 如果equals() 方法在比較2個對象時返回true,那么hashCode()的返回值必須得一樣 · Array類似object集合類型,大小固定 · Arraylist是同質(zhì)和異質(zhì)元素的集合 · Properties 是Hashtable的子類。它被用于維護值的list,其中它們的鍵、值都是String類型 · 使用 arrayList.toArray() 方法 ▼ |
|