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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java常见集合

發布時間:2025/3/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java常见集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? 1.HashTable

  • ?HashTable是線程安全的,但是效率特別低,因為當一個線程訪問HashTable的同步方法時,其他線程再訪問HashTable的同步方法,會發生阻塞

,如線程1在執行put操作時,線程2不但不能使用put,甚至不能使用get來獲取數據,所以效率非常低下。

  • HashTable的鍵值都不能非空,否則會報空指針。
  • 實現線程安全的原理,是幾乎HashTable的實現類的public方法都有synchronized來修飾。

? ? 2.HashMap

  • HaspMap的實現原理是數組加鏈表,(1.8是數組+鏈表+紅黑樹)
  • 是線程不安全的集合,不能用于多線程多并發的情況,其不安全主要是多個線程在put或擴容時形成鏈表環,當通過get執行一個不存在的key時就有可能發生死循環。
  • 其中鍵值都可以為空,如果插入相同的鍵則會覆蓋原有的
  • 通過key根據hashCode函數來算出hash值,(index =? HashCode(Key) &? (Length?- 1))再用hash值取mod運算得到在數組中的位置,如果數組中該位置沒有值則直接插入,反之,如果數組中有值,?則會插入鏈表中,當鏈表的個數超過8時,將鏈表轉化為紅黑樹的結構。
  • 擴容,當數組中的鍵值對超過數組長度x0.75時,數組會自動擴容,一般是采用2倍擴容。

? ? 3.HashSet

  • 存儲的數據不可重復,原因是底層是采用HashMap來實現的,其中set的值作為HashMap的鍵存儲,HashMap的值設定一個固定的靜態常對象。

轉載于:https://www.cnblogs.com/yanyy/p/10414162.html

總結

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

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