Java集合框架面試題目

1.爲何Map接口不繼承Collection 接口?java

  • Set是無序集合,而且不容許重複的元素
  • List是有序的集合,而且容許重複的元素
  • 而Map是鍵值對
  • 它被視爲是鍵的set和值的set的組合
  • Map被設計爲鍵值對的集合,因此不須要繼承Collection 接口

2.HashMap和Hashtable之間的區別?設計模式

  • 同步或線程安全
  • Null鍵和Null值
  • 迭代值
  • 默認容量大小

3.comparable 和 comparator的不一樣之處?數組

  • comparable接口其實是出自java.lang包
  • 它有一個 compareTo(Object obj)方法來將objects排序
  • comparator接口其實是出自 java.util 包
  • 它有一個compare(Object obj1, Object obj2)方法來將objects排序

4.如何對Object的list排序?安全

  • 對objects數組進行排序,咱們能夠用Arrays.sort()方法
  • 若是要對objects的集合進行排序,須要使用Collections.sort()方法

5. fail-fast 與 fail-safe 之間的區別?數據結構

  • Fail fast快速地報告任何的failure。不管什麼時候任何一個問題都會引起 fail fast系統fails
  • 在Java Fail fast 迭代器中,迭代objects集合有時會出現併發修改異常,出現這種狀況有2個緣由
  • 若是一個線程正在迭代一個集合,而另外一個線程同時試圖修改這個集合
  • 在調用remove()方法後,如何咱們還試圖去修改集合object

6. Iterator、ListIterator 和 Enumeration的區別?多線程

  • Enumeration接口在Java1.2版本開始有,因此Enumeration是合法規範的接口
  • Enumeration使用elements()方法
  • Iterator對全部Java集合類都有實現
  • Iterator使用iterator方法
  • Iterator只能往一個方向前進
  • ListIterator僅僅對List類型的類實現了
  • ListIterator使用listIterator()方法

7.Java 中 Set 與 List 有什麼不一樣?併發

  • Set是一個不容許重複元素存在的集合
  • Set沒有索引
  • Set僅僅容許一個null值
  • Set有類:HashSet、LinkedHashMap、TreeSet
  • List有索引
  • List容許N個null值
  • List能夠按插入順序顯示
  • List有類:Vector、ArrayList、LinkedList

8. arraylist 與 vector 的區別?框架

  • Vector 在Java的第一個版本就引入了,也就是說vector是一個合法規範的類
  • ArrayList在Java1.2版本引入的,是Java 集合框架的組成部分
  • Vector是同步的
  • ArrayList是不一樣步的

9.什麼類實現了List接口?線程

  • ArrayList
  • LinkedList
  • Vector

10.什麼類實現了Set接口?設計

  • HashSet
  • LinkedHashSet
  • TreeSet

11.如何保證一個集合線程安全?

  • Vector, Hashtable, Properties 和 Stack 都是同步的類,因此它們都線程安全的,能夠被使用在多線程環境中
  • 使用Collections.synchronizedList(list)) 方法,能夠保證list類是線程安全的
  • 使用java.util.Collections.synchronizedSet()方法能夠保證set類是線程安全的

12.是否能夠往 TreeSet 或者 HashSet 中添加 null 元素?

  • 能夠往 hashset 中添加一個 null
  • TreeSet 也容許一個 null值

13.解釋下Collection的接口繼承關係?

14.Iterator符合哪一個設計模式?

  • Iterator 設計模式

15.HashSet 實現了哪一個數據結構?

  • HashSet 內部實現了hashmap

16.爲何 Collection 不能繼承 Cloneable 和 Serializable?

  • List和Set惟一繼承 Collection 接口
  • SortedMap 繼承了 Map 接口

17.hashCode() 和 equals() 方法的重要性?如何在Java中使用它們?

  • hashCode() 和 equals() 方法定義在」object」類中
  • 若是equals() 方法在比較2個對象時返回true,那麼hashCode()的返回值必須得同樣

18.array 和 arraylist 的區別?

  • Array相似object集合類型,大小固定
  • Arraylist是同質和異質元素的集合

19.什麼是 Properties 類?

  • Properties 是Hashtable的子類。它被用於維護值的list,其中它們的鍵、值都是String類型

20.如何將一個字符串轉換爲arraylist?

  • 使用 arrayList.toArray() 方法
相關文章
相關標籤/搜索