摘要:集合的種類常見的集合類分如下幾個種類詳解接口是和接口的父接口,也是集合類除外根接口。接口集合中元素的存放特點是元素有序,同一元素可重復。總結中集合是一個非常重要的知識點,在實際運用中也是常常會使用到。
集合的種類
常見的集合類分如下幾個種類:
Collection
- List - ArrayList - LinkedList - Set - HashSet - TreeSet
Map
- HashMap - TreeMapCollection 詳解
Collection接口是List和Set接口的父接口,也是集合類(Map除外)根接口。 里面定義了很多的集合操作方法,源碼就不放了,我講=將里面涉及到的一些方法截圖出來,如圖所示:
這里面的方法可以自行百度其用法。
List集合中元素的存放特點是:元素有序,同一元素可重復。List接口存在兩個實現類,ArrayList和LinkedList。兩者之間雖然都是用于存放有序可重復的元素,但是兩者之間存在一定的區別;
1.ArrayList:底層實現是一個動態數組,查詢通過數組下標查詢; 2.LinkedList:底層實現是鏈表結構,查詢的過程需要重頭到位一個一個過濾對比
總結:所以我們可以得出 ArrayList 查詢速度要優于LinkedList,但是LinkedList的插入速度要優于ArrayList;所以我們在使用的過程中,查詢多使用 ArrayList ,查詢刪除多,使用 LinkedList 。
Set集合 HashSetHashSet類直接實現了Set接口, 其底層其實是包裝了一個HashMap去實現的。HashSet采用HashCode算法來存取集合中的元素,因此具有比較好的讀取和查找性能。
HashSet的特征不能保證元素插入的順序,因為HashSet按HashCode存儲對象(元素)決定的,對象變化則可能導致HashCode變化
HashSet是線程非安全的
HashSet元素值可以為NULL
TreeSet類的特征底層是用TreeMap實現的,本質上是一個紅黑樹原理。
Map接口java中的Map集合使用鍵(key)值(value)來保存數據,其中值(value)可以重復,但鍵(key)必須是唯一,也可以為空,但最多只能有一個key為空,它的主要實現類有HashMap、TreeMap。
HashMap HashMap的特征保存元素時先進后出、無序性;
鍵值可以為null,但最多只能為一個null;
不支持線程同步,即可以有多個線程同時寫HashMap,可能導致數據不一致,如果需要同步可以使用Collection的synchronizedMap方法使其同步。
TreeMap的特征保存元素key-value不能為null;
允許key-value重復;
遍歷元素時隨機排列。
總結Java中集合是一個非常重要的知識點,在實際運用中也是常常會使用到。每個不同的集合類的特征對于我們在使用選擇上有著直接關系,所以熟悉他們的特征非常重要
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69751.html
摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...
以下是Java技術棧微信公眾號發布的關于 Java 的技術干貨,從以下幾個方面匯總。 Java 基礎篇 Java 集合篇 Java 多線程篇 Java JVM篇 Java 進階篇 Java 新特性篇 Java 工具篇 Java 書籍篇 Java基礎篇 8張圖帶你輕松溫習 Java 知識 Java父類強制轉換子類原則 一張圖搞清楚 Java 異常機制 通用唯一標識碼UUID的介紹及使用 字符串...
摘要:再附一部分架構面試視頻講解本文已被開源項目學習筆記總結移動架構視頻大廠面試真題項目實戰源碼收錄 Java反射(一)Java反射(二)Java反射(三)Java注解Java IO(一)Java IO(二)RandomAccessFileJava NIOJava異常詳解Java抽象類和接口的區別Java深拷貝和淺拷...
摘要:基礎問題的的性能及原理之區別詳解備忘筆記深入理解流水線抽象關鍵字修飾符知識點總結必看篇中的關鍵字解析回調機制解讀抽象類與三大特征時間和時間戳的相互轉換為什么要使用內部類對象鎖和類鎖的區別,,優缺點及比較提高篇八詳解內部類單例模式和 Java基礎問題 String的+的性能及原理 java之yield(),sleep(),wait()區別詳解-備忘筆記 深入理解Java Stream流水...
閱讀 2096·2023-04-26 02:41
閱讀 2152·2021-09-24 09:47
閱讀 1553·2019-08-30 15:53
閱讀 1211·2019-08-30 13:01
閱讀 1892·2019-08-29 11:27
閱讀 2867·2019-08-28 17:55
閱讀 1763·2019-08-26 14:00
閱讀 3392·2019-08-26 10:18