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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java list 面试题_java【集合】面试题

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

一、實例化數組后,能不能改變數組的長度?

不能,數組一旦實例化,他們的長度就是固定的。

二、List、Set、Map的區別?

List中的元素:有序,可重復、可為空

set中的元素:無序、不可重復,只有一個可以為空

Map中的元素:無序、鍵不重復,值可以重復,可一個空鍵,一個空值。

三、ArrayList和LinkedList有什么區別?

ArrayList:

底層是動態數組。

Arraylist的默認初始值大小為10,默認擴容大小為1.5倍。

查詢快,增刪慢

LinkedList:

底層是雙向鏈表。

LinkedList將元素添加到鏈表的末尾,無需擴容。

增刪快,查詢慢。

四、如何對list集合進行去重?

1.借助于set集合

2.利用list集合的container方法進行循環遍歷

五、數組和鏈表分別適用于什么場景,為什么?

數組:查詢多,增刪少,數組的特性

鏈表:查詢少,增刪多,鏈表的特性。

六、HashMap的底層結構?

HashMap的底層數據結構為數組+鏈表,在jdk1.8中當鏈表的長度超過8時,鏈表會轉化為紅黑樹。

七、HashMap如何存儲數據?

如果數組還沒有初始化,就創建一個數組,默認長度時16.

將hashmap中的key值取出來,轉化成hash值,然后對數組的長度進行取余操作,然后放在數組對應的位置上。

如果這個鏈表為空,直接插入。

如果鏈表時紅黑樹,而且元素是紅黑樹,則直接插入到其中。

如果是鏈表,則遍歷鏈表,如果有相同的數值,則進行替換,否則直接插入到尾部。

如果鏈表的長度大于等于8,則直接轉換為紅黑樹。

八、hashMap在1.7中和在1.8中的區別?

在1.7的時候,沒有紅黑樹,1.8中引入新特性當鏈表的長度大于8的時候,會轉換成紅黑樹。

在1.7的時候,插入元素,直接插入到頭部,而在1.8的時候,是在尾部進行插入的。

擴容的時候,在1.7的時候,容易出現死循環,而1.8中就不會出現死循環。

九、HashMap和HashTable的區別?

HashMap:

非線程安全

允許由null值

HashMap默認初始化數組的大小為16,擴容時乘以2,使用位運算取得hash

hash特性等原因,所以效率比HashTable高。

HashTable:

線程安全

不允許由null值

hashTable默認初始值為11,擴容機制是乘以2+1,然后進行取模計算。

標簽:黑樹,面試題,java,HashMap,直接插入,鏈表,數組,集合,長度

來源: https://www.cnblogs.com/qingmuchuanqi48/p/13750558.html

總結

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

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