Java基礎之Collection和Map

List:實現了collection接口,list可以重復,有順序

實現方式:3種,分別為:ArrayList,LinkedList,Vector。

三者的比較:

ArrayList底層是一個動態數組,數組是使用連續的內存空間,有索引,所以它查詢快,增刪的時候需要移動內存,所以增刪慢。

LinkedList底層是一個動態鏈表,內存是不連續的,查詢的時候需要一個節點一個節點的找,所以說,查詢慢,但是增刪快,因為他不需要挪動內存,只需要修改鏈表指針。

ArrayList和LinkedList都是線程不安全的,所以適合于單線程。

Vector也實現動態數組,已經被ArrayList替代,它是屬于查詢安修改也慢,他可以無限加長,是線程安全的,因為它底層用synchronize修飾。

Set:實現了collection接口,不可重復,也沒有順序

實現方式:HashSet,TreeSet,

二者的比較:HashSet它不保證 set 的迭代順序;特別是它不保證該順序恒久不變。此類允許使用 null 元素

    TreeSet:對排序有更高的要求時使用。

HashSet:有下面的例子可以看出,輸出的結果是無序的。

結果:

?

Map:實現了的Map接口,以鍵值對的形式存在,其中鍵不可重復,值可以重復。但是在代碼中,如果鍵寫重復了并不會報錯,值會覆蓋了之前鍵所對應的值。

例如:map.put(“1”,“A”);map.put(“1”,“B”);map.put(“1”,“C”);那么此時,最后一個就把之前兩個覆蓋了。也相當于完成了修改的功能。

實現方式:4種,分別是HashMap;TreeMap;HashTable;LinkedHashMap;

四者的比較:

  HashMap:

    • 線程不安全,效率高。允許null鍵和null值
    • 是基于哈希表的Map接口實現。哈希表的作用是用來保證鍵的唯一性的。
    • 常用實例化方法:?
      ???????new HashMap< Object, Object>();

?

  

Hashtable:

  • 線程安全,效率低。不允許null鍵和null值

  

LinkedHashMap:

    • 是基于Map接口的哈希表和鏈接列表實現,有序
    • 由哈希表保證鍵的唯一性
    • 由鏈表保證鍵盤的有序(存儲和取出的順序一致)
    • 常用實例化方法:?
      ???????new LinkedHashMap< Object, Object>();

treeMap:

    • TreeMap:是基于紅黑樹的Map接口的實現。
    • 構造方法:?
      ???????TreeMap() 使用鍵的自然順序構造一個新的、空的樹映射。?
      ???????TreeMap(Comparator< ? super K> comparator) 構造一個新的、空的樹映射,該映射根據給定比較器進行排序

HashMap

TreeMap

HashTable

LinkedHashMap

?

轉載于:https://www.cnblogs.com/hanmengdi/p/9546814.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/389834.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/389834.shtml
英文地址,請注明出處:http://en.pswp.cn/news/389834.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

20155320《網絡對抗》Exp4 惡意代碼分析

20155320《網絡對抗》Exp4 惡意代碼分析 【系統運行監控】 使用schtasks指令監控系統運行 首先在C盤目錄下建立一個netstatlog.bat文件&#xff08;由于是系統盤&#xff0c;所以從別的盤建一個然后拷過去&#xff09;&#xff0c;用來將記錄的聯網結果格式化輸出到netstatlog.…

tableau 自定義省份_在Tableau中使用自定義圖像映射

tableau 自定義省份We have been reading about all the ways to make our vizzes in Tableau with more creativity and appeal. During my weekly practice for creating viz as part of makeovermonday2020 community, I came across geographical data which in way requir…

2055. 蠟燭之間的盤子

2055. 蠟燭之間的盤子 給你一個長桌子&#xff0c;桌子上盤子和蠟燭排成一列。給你一個下標從 0 開始的字符串 s &#xff0c;它只包含字符 ‘’ 和 ‘|’ &#xff0c;其中 ’ 表示一個 盤子 &#xff0c;’|’ 表示一支 蠟燭 。 同時給你一個下標從 0 開始的二維整數數組 q…

Template、ItemsPanel、ItemContainerStyle、ItemTemplate

原文:Template、ItemsPanel、ItemContainerStyle、ItemTemplate先來看一張圖(網上下的圖&#xff0c;加了幾個字) 實在是有夠“亂”的&#xff0c;慢慢來理一下&#xff1b; 1、Template是指控件的樣式 在WPF中所有繼承自contentcontrol類的控件都含有此屬性&#xff0c;&#…

熊貓燒香分析報告_熊貓分析進行最佳探索性數據分析

熊貓燒香分析報告目錄 (Table of Contents) Introduction 介紹 Overview 總覽 Variables 變數 Interactions 互動互動 Correlations 相關性 Missing Values 缺失值 Sample 樣品 Summary 摘要 介紹 (Introduction) There are countless ways to perform exploratory data analys…

2060. 同源字符串檢測

2060. 同源字符串檢測 原字符串由小寫字母組成&#xff0c;可以按下述步驟編碼&#xff1a; 任意將其 分割 為由若干 非空 子字符串組成的一個 序列 。 任意選擇序列中的一些元素&#xff08;也可能不選擇&#xff09;&#xff0c;然后將這些元素替換為元素各自的長度&#x…

vue中的data用return返回

為什么在大型項目中data需要使用return返回數據呢&#xff1f;答&#xff1a;不使用return包裹的數據會在項目的全局可見&#xff0c;會造成變量污染&#xff1b;使用return包裹后數據中變量只在當前組件中生效&#xff0c;不會影響其他組件。 1、在簡單的vue實例中看到的Vue實…

白褲子變粉褲子怎么辦_使用褲子構建構建數據科學的monorepo

白褲子變粉褲子怎么辦At HousingAnywhere, one of the first major obstacles we had to face when scaling the Data team was building a centralised repository that contains our ever-growing machine learning applications. Between these projects, many of them shar…

ubuntu+anaconda+tensorflow 及相關問題

配置tensorflow部分參考&#xff1a;https://blog.csdn.net/XUTIAN1129/article/details/78997633 裝完anaconda, source ~/.bashrc后, 可以直接 pip install tensorflow-gpu , 珍愛生命&#xff0c;遠離bazel。但想要c/c調用tf的時候遠離不了&#xff0c;還是得bazel編譯安裝t…

2022. 將一維數組轉變成二維數組

2022. 將一維數組轉變成二維數組 給你一個下標從 0 開始的一維整數數組 original 和兩個整數 m 和 n 。你需要使用 original 中 所有 元素創建一個 m 行 n 列的二維數組。 original 中下標從 0 到 n - 1 &#xff08;都 包含 &#xff09;的元素構成二維數組的第一行&#xf…

支持向量機SVM算法原理及應用(R)

支持向量機SVM算法原理及應用&#xff08;R&#xff09; 2016年08月17日 16:37:25 閱讀數&#xff1a;22292更多 個人分類&#xff1a; 數據挖掘實戰應用版權聲明&#xff1a;本文為博主原創文章&#xff0c;轉載請注明來源。 https://blog.csdn.net/csqazwsxedc/article/detai…

mad離群值_全部關于離群值

mad離群值An outlier is a data point in a data set that is distant from all other observations. A data point that lies outside the overall distribution of the dataset. Or in a layman term, we can say, an outlier is something that behaves differently from th…

2057. 值相等的最小索引

2057. 值相等的最小索引 給你一個下標從 0 開始的整數數組 nums &#xff0c;返回 nums 中滿足 i mod 10 nums[i] 的最小下標 i &#xff1b;如果不存在這樣的下標&#xff0c;返回 -1 。 x mod y 表示 x 除以 y 的 余數 。 示例 1&#xff1a;輸入&#xff1a;nums [0,1,2…

SpringBoot中各配置文件的優先級及加載順序

我們在寫程序的時候會碰到各種環境(開發、測試、生產)&#xff0c;因而&#xff0c;在我們切換環境的時候&#xff0c;我們需要手工切換配置文件的內容。這大大的加大了運維人員的負擔&#xff0c;同時會帶來一定的安全隱患。 為此&#xff0c;為了能更合理地重寫各屬性的值&am…

青年報告_了解青年的情緒

青年報告Youth-led media is any effort created, planned, implemented, and reflected upon by young people in the form of media, including websites, newspapers, television shows, and publications. Such platforms connect writers, artists, and photographers in …

post提交參數過多時,取消Tomcat對 post長度限制

1.Tomcat 默認的post參數的最大大小為2M&#xff0c; 當超過時將會出錯&#xff0c;可以配置maxPostSize參數來改變大小。 從 apache-tomcat-7.0.63 開始&#xff0c;參數 maxPostSize 的含義就變了&#xff1a; 如果將值設置為 0&#xff0c;表示 POST 最大值為 0&#xff0c;…

2048. 下一個更大的數值平衡數

2048. 下一個更大的數值平衡數 如果整數 x 滿足&#xff1a;對于每個數位 d &#xff0c;這個數位 恰好 在 x 中出現 d 次。那么整數 x 就是一個 數值平衡數 。 給你一個整數 n &#xff0c;請你返回 嚴格大于 n 的 最小數值平衡數 。 示例 1&#xff1a;輸入&#xff1a;n …

bzoj1222: [HNOI2001]產品加工

一開始以為是費用流。。然后搞不出來&#xff0c;路牌是DP&#xff0c;想一想 f[i][j]表示加工到第i個產品&#xff0c;然后A用時j&#xff0c;B用時的最小值 那么f[i][j]max(f[i-1][j-a[i]],f[i-1][j]b[i],f[i-1][j-c[i]]c[i]) 滾掉一維美滋滋 #include<cstdio> #includ…

map(平均平均精度_客戶的平均平均精度

map(平均平均精度Disclaimer: this was created for my clients because it’s rather challenging to explain such a complex metric in simple words, so don’t expect to see much of math or equations here. And remember that I try to keep it simple.免責聲明 &#…

Sublime Text 2搭建Go開發環境,代碼提示+補全+調試

本文在已安裝Go環境的前提下繼續。 1、安裝Sublime Text 2 2、安裝Package Control。 運行Sublime&#xff0c;按下 Ctrl&#xff08;在Tab鍵上邊&#xff09;&#xff0c;然后輸入以下內容&#xff1a; import urllib2,os,hashlib; h 7183a2d3e96f11eeadd761d777e62404 e330…