激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java Collection集合用法詳解

Java Collection集合用法詳解

2022-02-25 13:30做哈白日夢 Java教程

首先Collection是屬于單列集合的頂層接口,表示為一組對象。其類型為引用數據類型,具體創建對象,通過多態的形式進行,本文將給大家詳細的介紹,需要的朋友可以參考下

1.集合的主要體系及分支

Java Collection集合用法詳解

1.1Collection集合及實現類

1.概述:首先Collection是屬于單列集合的頂層接口,表示為一組對象。其類型為引用數據類型,具體創建對象,通過多態的形式進行。
2.主要常用方法(E這種是指泛型類型,可以為任何引用類型):

Java Collection集合用法詳解

3.Collection集合的遍歷(Iterator迭代器,集合的專用遍歷方式)
概述:

Java Collection集合用法詳解

 

2.List集合(List是帶有索引的. 所以多注意索引越界等問題)

1.概述:有序集合,且允許有重復的元素,使用者可以精確的控制每個元素的插入位置,并且可以快速訪問。
特點:有序(存儲與取出順序一致),且元素可以重復。

2.常用方法:

Java Collection集合用法詳解

3.List的列表迭代器(Listlterator)

用法:可以按照任意方向進行遍歷,并在迭代期間修改列表,并獲取列表中迭代器的位置,是list集合特有的迭代器。
常用方法:

Java Collection集合用法詳解

當使用倒敘遍歷時,是需要注意先進行一遍正向順序;或者直接通過Collection工具類中的reverse()的方法進行倒敘,再輸出。

4.并發修改異常(ConcurrentModificationException)

主要產生原因:通過內部類的形式,當通過hasNext()這個方法時,遍歷集合中加以判斷并添加時會發生并發異常,是因為list.add()會導致實際的修改集合和預期的修改集合不對等而觸發并發修改異常。
因為:當你使用list的add方法時候,只會添加實際修改集合的值,而預期的修改集合值不會增加,而hasNext()的使用是需要預期和實際進行判斷的。
如何避免這種異常出現?

1.使用列表迭代器的方法進行添加,因為add不會導致實際與預期的不對等。

2.通過for循環進行遍歷。

2.1 List的實現類

1.ArrayList(底層數據結構屬于數組實現,增刪慢,查詢快);
2.LinkedList(底層數據結構屬于雙鏈表,查詢慢,增刪快);
常用方法:

Java Collection集合用法詳解

 

3.Set集合

特點:集合是無序的(存儲與取出順序不一致),且不允許有重復元素,沒有索引值,因此不能使用普通for遍歷。

3.1HashSet(Set的實現類)

1.哈希值

概述:哈希值是JDK通過對象的地址或者字符串或者數字算出來的int類型的值。
特點:同一個對象的哈希值是相同的,且在默認情況下不同對象的哈希值是不同的。

2.數據結構之哈希表

Java Collection集合用法詳解

3.怎么HashSet集合的元素唯一性?(重中之重)

Java Collection集合用法詳解

4.LinkedHashSet集合(HashSet的子類)

Java Collection集合用法詳解

LinkedHashSet集合元素是有序的。

3.2TreeSet集合(Set的實現類)

特點:可以通過自然排序或者特定的比較器(主要用于Comparable接口來進行)來進行排序;
自然排序Comparable:

Java Collection集合用法詳解

String類實現類自然排序Comparable接口,則可以直接調用用來判斷字符串之間的大小,而當一個類的對象之間需要比較時,是需要實現自然排序Comparable接口,重寫其中compareTo的方法。(TreetSet可以通過匿名內部類的方法來進行重寫自然排序方法)。

 

4.集合的高頻面試題

4.1Arraylist 與 LinkedList 異同

1. 是否保證線程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保證線程安全;
2. 底層數據結構: Arraylist 底層使用的是Object數組;LinkedList 底層使用的是雙向循環鏈表數據結構;
3. 插入和刪除是否受元素位置的影響: ① ArrayList 采用數組存儲,所以插入和刪除元素的時間復雜度受元素位置的影響。 比如:執行add(E e)方法的時候, ArrayList 會默認在將指定的元素追加到此列表的末尾,這種情況時間復雜度就是O(1)。但是如果要在指定位置 i 插入和刪除元素的話(add(int index, E element))時間復雜度就為 O(n-i)。因為在進行上述操作的時候集合中第 i 和第 i 個元素之后的(n-i)個元素都要執行向后位/向前移一位的操作。 ② LinkedList 采用鏈表存儲,所以插入,刪除元素時間復雜度不受元素位置的影響,都是近似 O(1)而數組為近似 O(n)。
4. 是否支持快速隨機訪問: LinkedList 不支持高效的隨機元素訪問,而ArrayList 實現了RandmoAccess 接口,所以有隨機訪問功能。快速隨機訪問就是通過元素的序號快速獲取元素對象(對應于get(int index)方法)。
5. 內存空間占用: ArrayList的空 間浪費主要體現在在list列表的結尾會預留一定的容量空間,而LinkedList的空間花費則體現在它的每一個元素都需要消耗比ArrayList更多的空間(因為要存放直接后繼和直接前驅以及數據)。

4.2ArrayList 與 Vector 區別

Vector類的所有方法都是同步的。可以由兩個線程安全地訪問一個Vector對象、但是一個線程訪問Vector的話代碼要在同步操作上耗費大量的時間。
Arraylist不是同步的,所以在不需要保證線程安全時時建議使用Arraylist。

 

集合框架底層數據結構總結

1.Collection

1. List

Arraylist: Object數組
Vector: Object數組
LinkedList: 雙向循環鏈表

2. Set

HashSet(無序,唯一): 基于 HashMap 實現的,底層采用 HashMap 來保存元素。
LinkedHashSet: LinkedHashSet 繼承與 HashSet,并且其內部是通過 LinkedHashMap 來實現的。有點類似于我們之前說的LinkedHashMap 其內部是基于 Hashmap 實現一樣,不過還是有一點點區別的。
TreeSet(有序,唯一): 紅黑樹(自平衡的排序二叉樹)。

到此這篇關于Java Collection集合用法詳解的文章就介紹到這了,更多相關Java Collection集合內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_46870007/article/details/120859755

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 在线观看网址av | 亚洲国产美女视频 | 高潮激情aaaaa免费看 | 国产成人在线一区 | 成人一级视频 | 看毛片免费| 国产美女三级做爰 | 毛片在线看免费 | 久久男人视频 | 久久久tv | 黄网站色成年大片免费高 | 国产一级αv片免费观看 | 久久人人爽人人爽人人片av免费 | 久草手机视频在线观看 | 亚洲网站免费观看 | 久久999精品久久久 国产噜噜噜噜久久久久久久久 | 久久久久国 | 中文字幕亚洲视频 | 九九色网站 | 欧美熟videos肥婆 | 性明星video另类hd | 欧美国产日韩在线观看成人 | 欧美精品久久久久久久久久 | 1024亚洲天堂| 极品xxxx欧美一区二区 | 成人做爰高潮片免费视频韩国 | 毛片电影在线看 | 欧美日韩亚洲成人 | 5xx免费看| 国产乱xxxx| 国产女王女m视频vk 中文日韩 | 久草高清视频 | 国产精品一区二区三区在线播放 | 久久午夜免费视频 | 国产精品自拍啪啪 | 91av网址 | 久久久久久久免费看 | 91精品一区二区综合在线 | 在线a视频 | 一级做a爱片毛片免费 | 在线观看视频毛片 |