日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试题-集合

發布時間:2023/12/19 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试题-集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.JAVA 中數組和集合的區別 ?

(1)數組的長度是固定的,而集合長度是可以改變的。

(2)數組可以儲存基本數據類型和引用數據類型,而集合只能儲存引用數據類型(也就是對象)。

(3)定義數組時必須指出數組元素的類型,而集合默認其中所有元素的類型都是 Object 類型的。

2.Collection 和Collections 的區別 ?

(1)Collection 是集合類的上級接口,繼承于它的接口主要有 Set 和 List。

(2)Collections 是集合類的一個幫助類,它提供一系列靜態方法實現對集合的搜索、排序、線程安全化等操作。

3.List 和 Set 的區別 ?

(1)List 是有序的可重復的集合,而 Set 是無序的不可重復的集合。

(2)List 允許插入多個 Null 值,而 Set 只允許包含一個 Null 值。

4.ArrayList 和 LinkedList 和 Vector 的區別 ?

(1)ArrayList 和 Vector 都是基于動態數組實現的,查詢和修改數據快,而插入和刪除數據慢,ArrayList 是線程

不安全的,Vector 是線程安全的,所以 Vector 的性能比 ArrayList 的性能差。

(2)LinkedList 是基于雙向鏈表實現的,插入和刪除數據快,而查詢和修改數據慢。

5.HashTable 和 HashMap 的比較 ?

(1)HashTable 是線程安全的,而 HashMap 是線程不安全的。

(2)HashTable 不允許有 Null 值 (key 和 value 都不可以為 Null),而 HashMap 允許有 Null 值 (key 和 value 都

可以為 Null)。

(3)HashTable 和 HashMap 的遍歷方式差別不大,HashTable 僅僅比 HashMap 多了一個 elements 方法。

6.HashMap 和 ConcurrentHashMap 區別 ?

(1)HashMap 是線程不安全的,而 ConcurrentHashMap 是線程安全的。

(2)HashMap 不支持線程同步,而 ConcurrentHashMap 采用分段鎖來實現線程同步,類似于多個

HashTable。

7.HashSet 和 TreeSet 的區別 ?

(1)HashSet 是由一個 hash 表來實現的,所以它的元素是無序的。TreeSet 是由一個樹形的結構來實現的,所

以它的元素是有序的。

(2)HashSet 的元素可以為 Null,且只能有一個為 Null,而 TreeSet 的元素都不能為 Null。

(3)HashSet 底層是通過 HashMap 實現的,而 TreeSet 底層是通過 TreeMap 實現的。

8.HashTable 和 HashMap 底層實現原理 ?

(1)HashTable 底層實現原理是基于數組 + 鏈表,默認長度是11,擴容以后長度是 2n + 1。

(2)HashMap 的底層原理:JDK1.7 是數組 + 鏈表,JDK1.8 是數組 + 鏈表 + 紅黑樹,默認長度是16,擴容以后

是兩倍 32,線程不安全,效率高。

9.HashMap 和 LinkedHashMap 的區別 ?

(1)HashMap 是無序的,HashMap 允許多條記錄的值為 Null,但是最多只允許一條記錄的鍵為 Null。

(2)LinkedHashMap 是 HashMap 的子類,是基于 HashMap 和雙向鏈表來實現的, LinkedHashhMap 是有序

的, 它可以保證 HashMap 集合有序,存入的順序和取出的順序是一致的。

總結

以上是生活随笔為你收集整理的面试题-集合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。