程序员基本功03常见JAVA集合的实现细节
筆記筆記自己看的
1、Set和Map的關聯之處
Set代表一種集合元素無序、不可重復的集合,Map代表一種由多個鍵值對組成的集合。Map集合的Key之間不能重復且無序,也就是說,把map里的key單列出來是set集合。
2、Hash存儲機制的快速存取原理
系統采用Hash算法決定集合元素的存儲位置,保證快速存取集合元素
3、紅黑樹的快速訪問機制
?紅黑樹是一種自平衡二叉查找樹,樹中每個節點的值,都大于或等于在它左子樹中的所有節點的值,并且小于或等于在它的右樹中所有節點的值,這確保紅黑樹運行時可以快速查找和定位所需點。
4、Map和List的相似性
?map接口提供了get(K key)方法允許map對象根據key取得value;list接口提供了get(int index)方法允許list對象根據元素索引取得value。list相當于所有key都是int類型的map,也可以說map相當于索引是任意類型的map
5、List集合代表線性表
6、LinkedList集合底層的鏈表實現
https://blog.csdn.net/LZJLZJLZJLZJLZJLZJ/article/details/52278461
7、不同集合類對Iterator提供實現類
iterator是一個迭代器接口,專門用于迭代Collection集合,包括set集合和list集合。iterator迭代器接口只有一個scanner實現類。顯然scanner并不能用于迭代set、list集合。
set集合對應的iterator,都是對應map的內部類KeyIterator(EnumSet集合的Iterator是RegularEnumSet的一個內部類)
arraylist和vector的實現基本相同,除了arrayList是線程不安全,Vector是線程安全的,他們的iterator是AbstractList的內部類Itr。
linkedlist集合對應的Iterator是其內部類ListItr
ArrayDeque集合對應的Iterator是ArrayDeque$DeqIterator。
8、 HashMap底層的Hash存儲機制
在存儲時,系統將調用JAVA對象的hashCode()方法,得到其hashCode值,然后根據hashCode值來決定元素的存儲位置。
9、TreeMap底層的紅黑樹存儲機制
每向treemap中放入一個key-value對,系統會將該entry當成一個新節點,添加到已有紅黑樹中,保證key的有序。紅黑樹是一種自平衡二叉查找樹,樹中每個節點的值,都大于或等于它在左子樹中所有節點的值,小于等于右子樹節點的值,這確保紅黑樹運行時快速地查找和定位所需節點。
10、Set實現的底層依然是Map
11、Map的values()方法的返回值
返回值包含map中所有value的集合,但他們并不是list對象
12、arrayList集合底層的數組實現
https://blog.csdn.net/dingji_ping/article/details/51014914
https://blog.csdn.net/u012877472/article/details/50852933
13、ArrayList和LinkedList在不同場景下的性能差異
?list代表一種線性表的數據結構,arraylist則是一種順序存儲的線性表。其底層采用數組來保存每一個元素,linkedlist則是一種鏈式存儲的線性表。其本質是一個雙向表,不僅實現了list接口,還實現了Deque接口,也就是說Linkedlist既可以當成雙向鏈表使用,也可以當隊列使用,還可以當成棧來使用。
arraylist刪減元素性能差,查詢快;linkedlist相反;
14、不同集合在Iterator迭代時產出元素的行為差異
?iterator迭代器只負責各種集合所包含的元素進行迭代,它自己并沒有保留集合元素,因此迭代時,不應該刪除集合元素,否則引發concurrent modificationException異常。對于ArrayList、Vector、LinkedList等List集合來說,當Iterator遍歷他們倒數第二個元素時,使用list集合的remove()方法刪除集合的任意一個元素,不會引發異常,當正在遍歷其他元素時就和引發異常。對于TreeSet、HashSet等Set集合而言,當Iterator遍歷最后一個元素時,不發生異常。?
https://www.jianshu.com/p/ebf037d54661
總結
以上是生活随笔為你收集整理的程序员基本功03常见JAVA集合的实现细节的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员基本功02对象与内存控制
- 下一篇: 程序员基本功04JAVA的内存回收