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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

java集合基础复习

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

為什么80%的碼農都做不了架構師?>>> ??

溫故知新,好一段學習時間過后到了收割的季節。
java中集合java.util包下的一個集合根接口collection,其子接口list和set,map接口定義key-value鍵值對。
ArrayList、linkedlist、vector實現了list接口。也稱線性集合。數據有序可重復。
ArrayList:底層實現的數組,線程不安全的,效率高,則查詢較,修改刪除插入較慢。
linkedlist:底層實現是數組,線程不安全的,效率低,插入,修改較快,查詢較慢。
Vector:線程安全的,效率低。它是stack的父類。
深層次分析:注意ArrayList的底層的數組擴容,linkedlist雙向鏈表的概念,第一個節點沒有上一個,最后一個節點沒有下一個。單向鏈表只有下一個沒有上一個,慢慢體會鏈表的思想,怎么找上一個,下一個,重點體會索引的處理。
----------------------------------------------------------------------
map:映射集合map,包含兩個部分key,value.其中key不得重復,所以它可以組成一個Set,而value部分可以重復可以組成一個Collection。key不能重復,value可以(上次看到set底層實現是map的key)
hashmap,treemap,hashtable,map的實現類。

注意hashmap和hashtable的區別,經常問到面試題。
---hashmap線程不安全,效率高。(使用頻率最高的一種Map集合)
------hashmap可以接受null鍵值和值,而Hashtable則不能
---hashTable用法與HastMap集合基本相同,只是HashTable是比較老的類集,是線程安全的,所以效率較低。
------hashtable線程安全,效率低。

注意map和其他集合增加元素的方式不同,使用put(key,value);取元素時候使用get(key);通過key來取value。
map與其他集合不同是映射集合,其底層實現也不同,map底層實現是數組加鏈表,hashmap的存取實現存放數據時候通過先計算數據key的hash值,根據不同的hash值確定索引來存放在一個類型entry<key,vakue>名字叫table、大小16數組中,如果在遇到相同的hash值則以鏈表的形式數組索引后面進行連接(如果計算那個位置沒有索引則直接把entry對象放進去索引中,如果索引中有元素則進行迭代,一直到entry-next方法找下一個--->null的時候,則當前entry對象變成下一個節點)。

通過源碼可以知道
??? static class Node<K,V> implements Map.Entry<K,V> {};
??? transient Node<K,V>[] table;
首先map可以entry鍵值對進行映射所以可以通過entry來獲取鍵值對,并且節點中也可存放鍵值對,則可組成鏈表來進行存放數據。實現是紅黑樹算法的實現


treemap的實現是紅黑樹算法的實現。其底層是通過紅黑二叉樹來實現。
treemap如果可以排序,或者提供比較器實現ava.lang.comparable接口重寫?? ?compareTo方法。則可以排序。

---------------------------------------------
set集合元素無需不可重復。
實現類hashset,其中元素沒有下標,只能用迭代器來遍歷。
set是基于map實現的,其中map的中的key組成set。
---hsahset使用必須重寫equals和hashcode,其底層實現是hash表,進行存放數據時候先比較元素的hash值(因為hash值是唯一的),如果hash值相同那么在equals進行比較,因為set集合中元素不可重復這樣才保證了元素的不可重復性。
通過底層原理的理解,得出一個注意點:存放在Set中的元素的所在類必須重寫equals()方法和HashCode()方法。
?? ?
實現類TreeSet如果元素滿足自然排序,也就是實現Comparable<T> 接口,則可以進行排序。
------------------------------

常見面試題:

注意hashmap和hashtable的區別,經常問到面試題。
hashmap線程不安全,效率高。(使用頻率最高的一種Map集合)
hashTable用法與HastMap集合基本相同,只是HashTable是比較老的類集,是線程安全的,所以效率較低。
hashtable線程安全,效率低。

常見數據結構
?? ??? ?A:棧 先進后出
?? ??? ?B:隊列 先進先出
?? ??? ?C:數組 查詢快,增刪慢
?? ??? ?D:鏈表 查詢慢,增刪快
List的子類特點(面試題)
?? ??? ?ArrayList
?? ??? ??? ?底層數據結構是數組,查詢快,增刪慢。
?? ??? ??? ?線程不安全,效率高。
?? ??? ?Vector
?? ??? ??? ?底層數據結構是數組,查詢快,增刪慢。
?? ??? ??? ?線程安全,效率低。
?? ??? ?LinkedList
?? ??? ??? ?底層數據結構是鏈表,查詢慢,增刪快。
?? ??? ??? ?線程不安全,效率高。

轉載于:https://my.oschina.net/hp2017/blog/1560085

總結

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

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