JAVASE進階day08(Map雙列集合)

HashMap

1.HashMap基本使用

package com.lu.day08.map;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class MapDome {public static void main(String[] args) {HashMap<String , String> map = new HashMap<>();//添加后者修改->如果key不存在則是添加,如果key已經存在就是修改map.put("曹雪芹","紅樓夢");map.put("施耐庵","水滸傳");map.put("吳承恩","西游記");map.put("杜甫","登高");System.out.println(map);//通過key獲取值,如果key不存在則,獲取到的值為nullSystem.out.println(map.get("吳承恩"));System.out.println(map.get("李白"));map.remove("吳承恩");System.out.println("--------------");map.put("杜甫","琵琶行");System.out.println(map);HashMap<Integer, String> map1 = new HashMap<>();map1.put(1,"one");map1.put(2,"two");map1.put(3,"three");map1.put(4,"four");System.out.println(map1.containsKey(7));System.out.println(map1.containsValue("one"));System.out.println(map1.isEmpty());System.out.println(map.size());//獲取鍵集合Set<String> strings = map.keySet();for (String key : strings) {System.out.println(key+"-->"+map.get(key));}System.out.println("-----------------");//entrySet 返回一個存放鍵值對set集合//entry是一個map接口中的內部類->通過put(k,v)放置的鍵值對,實際上存到了entry對象中->對象由HashMap中的內部類中的node實現//實現其中有兩個屬性(key,value)Set<Map.Entry<String, String>> entries = map.entrySet();for (Map.Entry<String, String> entry : entries) {System.out.println(entry.getKey()+"-->"+entry.getValue());}System.out.println("-----------------");//函數式的遍歷方法forEachmap.forEach((k,v)->{System.out.println(k+"-->"+v);});//只能key取value不能反過來}}

TreeMap基本使用

1.TreeMap基本使用

?

package com.lu.day08.map;import java.util.Comparator;
import java.util.TreeMap;public class TreeMapDemo {public static void main(String[] args) {//TreeMap只能對key排序Comparator<Integer> c = (o1,o2)->o2-o1;TreeMap<Integer, String> map = new TreeMap<>(c);map.put(1, "a");map.put(2, "b");map.put(3, "c");System.out.println(map);}
}

LinkedHashMap

package com.lu.day08.map;import java.util.LinkedHashMap;
import java.util.LinkedHashSet;public class LinkedHashMapDemo {public static void main(String[] args) {//保證存取有序LinkedHashMap<Integer, String> map = new LinkedHashMap<>();map.put(1, "張三");map.put(2, "李四");map.put(3, "王五");map.put(4, "趙六");map.forEach((k, v) -> {System.out.println(k + ":" + v);});LinkedHashSet<Integer> set = new LinkedHashSet<>();set.add(1);set.add(2);set.add(3);set.forEach(System.out::println);}
}

?集合嵌套

package com.lu.day08.map;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class Test {public static void main(String[] args) {HashMap<String, List<String>> map = new HashMap<>();ArrayList<String> xiaomi = new ArrayList<>();xiaomi.add("小米1");xiaomi.add("小米2");xiaomi.add("小米3");map.put("小米", xiaomi);ArrayList<Map<String,Double>> list = new ArrayList<>();HashMap<String, Double> clothMap = new HashMap<>();clothMap.put("耐克",2300.0);clothMap.put("貴人鳥",7800.0);clothMap.put("凡客",50.0);}
}

Collections

1.集合輔助工具類

package com.lu.day08.collections;import java.util.ArrayList;
import java.util.Collections;public class CollectionsDemo {public static void main(String[] args) {ArrayList<Integer> list = new ArrayList<>();list.add(1);list.add(5);list.add(2);list.add(4);list.add(3);System.out.println(list);// 反轉Collections.reverse(list);System.out.println(list);// 排序Collections.sort(list);System.out.println(list);// 隨機Collections.shuffle(list);System.out.println(list);}
}

可變參數

package com.lu.day08.collections;/*** 可變參數*/
public class VaryParam {public static void main(String[] args) {print(1,2,3,4,5,6,7,8,9);}public static void print(int... a){for (int j : a) {System.out.println(j);}}
}

不可變集合

?

package com.lu.day08.collections;import java.util.List;
import java.util.Map;
import java.util.Set;/*** jdk9新增不可變集合*/
public class Test {public static void main(String[] args) {//創建list不可變集合List<Integer> integers = List.of(1, 2, 3);integers.forEach(System.out::println);//創建set不可變集合Set<Integer> integers1 = Set.of(1, 2, 3);System.out.println(integers1);//創建map不可變集合Map<String, Integer> a = Map.of("A", 1, "B", 2, "C", 3);System.out.println(a);}
}

HashMap底層

?面試題

1.所有集合的底層分別是什么

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

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

相關文章

H264視頻編碼中Annex B 格式介紹

Annex B 格式是 H.264 (也稱為 AVC) 視頻編碼標準中的一種數據表示格式&#xff0c;用于將視頻數據從編碼器傳輸到解碼器。它主要用于流媒體傳輸和文件存儲。 文章目錄 Annex B 格式的定義Annex B 格式的主要特點Annex B 與其他格式的對比Annex B 格式示例將 H.264 數據從 MP4…

查詢(q_proj)、鍵(k_proj)和值(v_proj)投影具體含義

查詢(q_proj)、鍵(k_proj)和值(v_proj)投影&#xff0c;這些投影是自注意力機制的核心組件&#xff0c;特別是在Transformer架構中。 讓我們通過一個簡化的例子來說明&#xff1a; import numpy as np# 假設輸入維度是4&#xff0c;注意力頭數是2 input_dim 4 num_heads 2 …

每天一道Java面試題系列之--Spring如何解決循環依賴問題

面試題&#xff1a;Spring如何解決循環依賴問題&#xff1f; 問題背景&#xff1a; 在Spring框架中&#xff0c;循環依賴通常發生在單例&#xff08;Singleton&#xff09;作用域的bean之間。當兩個或多個bean在它們的構造函數中相互引用時&#xff0c;Spring容器在創建這些b…

電腦32位和62位是什么意思

在現代計算機世界中&#xff0c;32位和64位是兩個常見的術語&#xff0c;但許多用戶可能不太清楚它們的確切含義以及它們之間的區別。本文將詳細介紹32位和64位計算機的基本概念、如何查看您的計算機是32位還是64位&#xff0c;以及它們對用戶的實際影響。 32位與64位的基本概…

算法之工程化內容(1)—— Linux常用命令

目錄 1. cd 命令 2. pwd 查看當前工作目錄路徑 3. SSH遠程登錄 4. ln -s 軟鏈相關 5. mkdir 新建空目錄 6. cp 復制 7. chown 權限改寫 8. 進程相關&#xff08;nohup/ ps/ kill&#xff09; 9. tar -czvf/ tar -xzvf&#xff0c;zip/ unzip解壓縮文件 10. df/ du/ free 11. hi…

MySQL篇七:復合查詢

文章目錄 前言1. 基本查詢回顧2. 多表查詢3. 自連接4. 子查詢4.1 單行子查詢4.2 多行子查詢4.3 多列子查詢4.4 在from子句中使用子查詢4.5 合并查詢4.5.1 union4.5.2 union all 前言 前面我們講解的mysql表的查詢都是對一張表進行查詢&#xff0c;在實際開發中這遠遠不夠。 1.…

【高中數學/指數函數】比較a=0.6^0.9 b=0.6^1.5 c=1.5^0.6的大小

【問題】 比較a0.6^0.9 b0.6^1.5 c1.5^0.6的大小 【解答】 指數函數y0.6^x是減函數&#xff0c;因為0.9<1.5,所以0.6^0.9>0.6^1.5,即a>b; 指數函數y1.5^x是增函數&#xff0c;1.5^0.6>1.5^01>0.6^0.9,即c>a; 綜上&#xff0c;得出c>a>b的結論。 …

【運維】docker批量刪除臨時鏡像(兩種方式)

docker批量刪除Tag<none>的臨時鏡像 在開發的時候&#xff0c;需要經常發布開發包&#xff0c;在使用docker build構建鏡像的時候&#xff0c;同一個版本經常會使用相同tag&#xff0c;頻繁打包一段時間后&#xff0c;本地會出現很多Tag<none>的臨時鏡像&#xff…

【MySQL】MySQL中的字段類型和區別

文章目錄 前言一、說明舉例1. 數值類型2. 字符串類型3. 日期和時間類型 二、總結 前言 在設計數據庫和創建表時&#xff0c;理解MySQL中的各種字段類型及其區別是非常重要的。每種類型都有其特定的用途和存儲需求。在本文中&#xff0c;我們將詳細討論MySQL中的各種字段類型&a…

uniapp如何發送websocket請求

方法1&#xff1a; onLoad() {uni.connectSocket({url: ws://127.0.0.1:8000/ws/stat/realTimeStat/,success: (res) > {console.log(connect success, res);}});uni.onSocketOpen(function (res) {console.log(WebSocket連接已打開&#xff01;);uni.sendSocketMessage({d…

Xinstall揭秘:APP推廣數據背后的真相,讓你的營銷更精準!

在這個移動互聯網時代&#xff0c;APP如同雨后春筍般涌現&#xff0c;但如何在這片紅海中脫穎而出&#xff0c;成為每一個開發者與運營者面臨的共同難題。其中&#xff0c;APP推廣統計作為衡量營銷效果、優化推廣策略的關鍵環節&#xff0c;更是不可忽視的一環。今天&#xff0…

[GDOUCTF 2023]Tea writeup

通過strings找到關鍵函數 int __fastcall main_0(int argc, const char **argv, const char **envp) {char *v3; // rdi__int64 i; // rcxchar v6; // [rsp20h] [rbp0h] BYREFint v7; // [rsp24h] [rbp4h]int v8; // [rsp44h] [rbp24h]int four_key[12]; // [rsp68h] [rbp48h]…

你知道滾筒式高速視覺檢測機外觀怎么“看”出產品質量嗎?

點火線圈膠套是一種用于保護點火線圈絕緣部分的膠質套管。這種膠套通常由高溫耐磨的橡膠或硅膠材料制成&#xff0c;具有良好的絕緣性能和耐高溫性能。點火線圈膠套的作用是防止點火線圈與外部環境接觸&#xff0c;防止受潮、灰塵或化學物質的侵蝕&#xff0c;同時起到絕緣和保…

python怎么調用cmd命令

關于python調用cmd命令&#xff1a; 1、python的OS模塊 OS模塊調用CMD命令有兩種方式&#xff1a;os.popen()、os.system()都是用當前進程來調用。 OS.system是無法獲取返回值的。當運行結束后接著往下面執行程序。用法如&#xff1a;OS.system("ipconfig"). OS.…

隨身WiFi市場亂象橫生,隨身WiFi測評最好的格行隨身WiFi如何引領變革?

在當今隨身WiFi市場亂象頻發、內卷嚴重的背景下&#xff0c;消費者對于產品的性能與商家是否會后臺割韭菜依舊存疑&#xff0c;尤其是“隨身WiFi到底卡不卡&#xff1f;”的問題&#xff0c;成為了廣大消費者關注的重點。然而&#xff0c;在眾多品牌中&#xff0c;格行隨身WiFi…

【音頻特征提取】傅里葉變換算法源碼學習記錄

目錄 背景快速理解FFT&#xff08;快速傅里葉變換&#xff09;IFFT&#xff08;逆傅里葉變換&#xff09;STFT&#xff08;短時傅里葉變換&#xff09; 代碼實現FFT源代碼IFFT源代碼FFT、IFFT自己實驗STFT源代碼STFT自己實驗 總結 背景 最近用到了相關操作提取音頻信號特征&am…

Vue3 根據相對路徑加載vue組件

一、設置動態組件加載器 1、"DynamicFormLoader.vue" <template><div><component :is"formComponent" v-if"formComponent" /></div> </template><script setup> import { ref, watch } from vue; import …

如何測試掃地機器人的穩定性

測試掃地機器人的穩定性是一個綜合性的過程&#xff0c;旨在確保機器人在各種環境和條件下都能穩定運行。以下是一些關鍵的測試步驟和方面&#xff1a; 清潔效果測試 目的&#xff1a;評估掃地機器人在不同地面和污漬類型上的清潔能力。 方法&#xff1a; 使用不同類型的地面&…

標簽印刷檢測,如何做到百分百準確?

印刷標簽是一種用于標識、識別或包裝產品的平面印刷制品。這些標簽通常在紙張、塑料膜、金屬箔等材料上印刷產品信息、條形碼、圖像或公司標識&#xff0c;以便于產品識別和管理。印刷標簽有各種形狀、尺寸和材質&#xff0c;可以根據具體需求進行定制設計。常見的印刷標簽包括…

FlutterFlame游戲實踐#15 | 生命游戲 - 演繹啟動

theme: cyanosis 本文為稀土掘金技術社區首發簽約文章&#xff0c;30天內禁止轉載&#xff0c;30天后未獲授權禁止轉載&#xff0c;侵權必究&#xff01; Flutter\&Flame 游戲開發系列前言: 該系列是 [張風捷特烈] 的 Flame 游戲開發教程。Flutter 作為 全平臺 的 原生級 渲…