網站首頁 編程語言 正文
一、集合Map
Map是一個雙列集合,一個元素包含兩個值(一個key,一個value);
Map集合中的元素,key和value的數據類型可以相同,也可以不同 ;
Map中的元素,key不允許重復,value可以重復 ;
Map里的key和value是一一對應的。
二、HashMap
HashMap底是哈希表,查詢速度非常快(jdk1.8之前是數組+單向鏈表,1.8之后是數組+單向 鏈表/紅黑樹 ,鏈表長度超過8時,換成紅黑樹);
HashMap是無序的集合,存儲元素和取出元素的順序有可能不一致 ;
HashMap集合是不同步的,也就是說是多線程不安全,單速度快。
HashMap<String, String> map = new HashMap<>();
HashMap常用操作:
import java.util.HashMap;
public class Practice14 {
public static void main(String[] args) {
//實例化
HashMap<String,String> hm = new HashMap<>();
System.out.println(hm.isEmpty());
//插入元素
hm.put("1","java");
hm.put("2","mysql");
hm.put("3","javascript");
System.out.println(hm);
System.out.println(hm.isEmpty());
System.out.println(hm.size());
System.out.println("---");
System.out.println(hm.containsKey("s3"));
System.out.println(hm.containsValue("java"));
System.out.println("---");
//刪除
//hm.clear();
//hm.remove("s1");//根據key刪除元素
//hm.remove("s1","myjava");//根據key value刪除元素
//修改
String str = hm.replace("s1","java18");
System.out.println(str);
System.out.println(hm);
//獲取元素
System.out.println(hm.get("s1"));//java
System.out.println(hm.getOrDefault("s3","html"));
System.out.println(hm.get("s3"));
}
}
運行結果:
true
{1=java, 2=mysql, 3=javascript}
false
3
---
false
true
---
null
{1=java, 2=mysql, 3=javascript}
null
html
null
二、HashMap遍歷
有以下幾種遍歷方式:
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Practice15 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
map.put("北京", "火鍋");
map.put("上海", "東方明珠");
map.put("鄭州", "方特");
map.putIfAbsent("杭州", "大閘蟹");
map.replace("武漢", "熱干面");
//第一種遍歷
for(Object key : map.keySet()) {
System.out.println("key:" + key + ",vaule:" + map.get(key));
}
System.out.println("--------------------");
//第二種遍歷
Iterator<String > it = map.keySet().iterator();
while (it.hasNext()) {
Object key = it.next();
System.out.println("key:" + key + ",vaule:" + map.get(key));
}
System.out.println("--------------------");
//第三種遍歷
Iterator<Map.Entry<String , String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String , String> entry = iterator.next();
System.out.println("key:" + entry.getKey() + ",vaule:" +
entry.getValue());
}
System.out.println("--------------------");
//第四種遍歷
for (Map.Entry<String,String> entry: map.entrySet()) {
System.out.println("key:" + entry.getKey() + ",vaule:" +
entry.getValue());
}
System.out.println("--------------------");
//第五種遍歷
map.forEach((key,value) -> {
System.out.println("key:" + key + ",vaule:" + value);
});
System.out.println("--------------------");
//第六種遍歷
map.entrySet().forEach(item -> {
System.out.println("key:" + item.getKey() + ",vaule:" +
item.getValue());
});
System.out.println("--------------------");
//第七種遍歷
map.keySet().forEach(item -> {
System.out.println("key:" + item + ",vaule:" + map.get(item));
});
}
}
運行結果:
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
--------------------
key:上海,vaule:東方明珠
key:鄭州,vaule:方特
key:杭州,vaule:大閘蟹
key:北京,vaule:火鍋
?
原文鏈接:https://blog.csdn.net/xiaobaistudyjava/article/details/126959866
- 上一篇:IO流技術中的File類
- 下一篇:String和StringBuilder的用法
相關推薦
- 2022-06-28 Python利用shutil模塊實現文件的裁剪與壓縮_python
- 2023-04-17 Python使用future處理并發問題方案詳解_python
- 2022-11-07 Python根據字典值對字典進行排序的三種方法實例_python
- 2023-02-17 linux?命令中的大于號、小于號的作用及代表的意思_linux shell
- 2023-02-01 docker中安裝elasticsarch?等鏡像的過程_docker
- 2022-07-12 springboot整合jasypt加密yml配置文件
- 2022-10-06 react?路由權限動態菜單方案配置react-router-auth-plus_React
- 2022-12-02 python中os庫的函數使用_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支