public class test1 {
public static void main(String[] args) {
//定义
HashMap<String, String> hashMap = new HashMap<>();
//获取大小
int size = hashMap.size();
System.out.println("size:" + size);
//判断是否为空
boolean b = hashMap.isEmpty();
System.out.println("hashMap是否为空:" + b);
//插入 key-value格式
hashMap.put("name", "Tom");
//判断是否包含key
boolean b1 = hashMap.containsKey("name");
System.out.println("是否包含name的key:" + b1);
//判断是否包含value值
boolean b2 = hashMap.containsValue("Mary");
System.out.println("是否包含值Mary:" + b2);
//根据key获取值
String value = hashMap.get("name");
System.out.println("name的值:" + value);
//根据key值删除
hashMap.remove("name");
System.out.println("删除后的hashMap:" + hashMap);
//hashMap插入一个hashMap
HashMap<String, String> hashMap1 = new HashMap<>();
hashMap1.put("age", "18");
hashMap1.put("name", "John");
hashMap.putAll(hashMap1);
System.out.println("插入后的hashMap:" + hashMap);
//获取key的集合
Set<String> set = new HashSet<>();
set = hashMap.keySet();
System.out.println("key的集合为:" + set);
//获取value的集合
Collection<String> values = hashMap.values();
System.out.println("value的集合:" + values);
//获取key-value的集合
Set<Map.Entry<String, String>> entries = hashMap.entrySet();
System.out.println("key-value的集合:" + entries);
//比较两个hashMap是否相等
boolean equals = hashMap.equals(hashMap1);
System.out.println("hashMap是否等于hashMap1:" + equals);
// getOrDefault:如果存在key,则返回对应的value,否则返回默认值
String orDefault = hashMap.getOrDefault("name", "ZhangHua");
System.out.println("返回name这个key对应的value:" + orDefault);
String orDefault1 = hashMap.getOrDefault("class", "高三");
System.out.println("返回class这个key对应的value:" + orDefault1);
// forEach:遍历hashMap
System.out.println("----遍历hashMap开始----");
hashMap.forEach((k, v) -> {
System.out.println(k + "-->" + v);
});
System.out.println("----遍历hashMap结束----");
// replaceAll:参数时一个函数,特殊处理key-value值
hashMap.replaceAll((k, v) -> {
if (v != null) {
v = v.toUpperCase();
}
return v;
});
System.out.println("使用replaceAll使所有的value转大写:" + hashMap);
//putIfAbsent:如果不存在则插入,存在则不更新
hashMap.putIfAbsent("sex", "男");
hashMap.putIfAbsent("name", "Tom");
System.out.println("使用putIfAbsent添加sex后的hashMap:" + hashMap);//原来没有sex
System.out.println("使用putIfAbsent添加name后的hashMap:" + hashMap);//原来有name
// replace: 参数为三个 key,旧value,新value
hashMap.replace("age", "18", "20");
System.out.println("1、更改age后的hashMap:" + hashMap);
// replace: 参数为两个 key,新value
hashMap.replace("age", "18");
System.out.println("2、更改age后的hashMap:" + hashMap);
// computeIfAbsent: 类似putIfAbsent,当key不存在时,或者key的值为null时,执行后面的函数
hashMap.computeIfAbsent("card", k -> hashMap.put(k, "20201212"));
System.out.println("使用computeIfAbsent的hashMap:" + hashMap);
// computeIfPresent:与computeIfAbsent 相反,如果key存在时,重新映射函数,用于重新计算值
hashMap.computeIfPresent("card", (k, v) -> v + "0001");
System.out.println("使用computeIfPresent重新定义card后的hashMap:" + hashMap);
// compute:如果存在key则重新定义对应的value;否则插入key,但是对应的value为null
hashMap.compute("card", (k, v) -> v + "aaa");
System.out.println("hashMap原来存在card,使用compute函数,再次计算:" + hashMap);
hashMap.compute("grade", (k, v) ->{
return "60";
} );
System.out.println("hashMap原来不存在grade,使用compute函数:" + hashMap);
// merge:判断指定的 key 是否存在,如果不存在,则添加键值对到 hashMap 中。
hashMap.merge("name", "Tom", (oldV, newV) -> newV); //原来name的值为John,改为Tom
System.out.println("使用merge重新定义name后的hashMap:" + hashMap);
hashMap.merge("class", "高三", (oldV, newV) -> newV);//原来不存在class,则添加对应的键值对
System.out.println("使用merge重新定义class后的hashMap:" + hashMap);
// remove(key,value):必须key-value在hashmap中存在才能移除
boolean card = hashMap.remove("card", "202012120001");
System.out.println("1、移除card是否成功:" + card);
boolean card1 = hashMap.remove("card", "202012120001aaa");
System.out.println("2、移除card是否成功:" + card1);
}
}
java hashmap get方法 java hashmap的方法
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
HashMap源码剖析
本文主要比较了jdk1.7和1.8中HashMap的put逻辑
HashMap 源码 -
hashmap的实现方法 java hashmap简单实现
hashmap实现原理;自己实现一个hashmap代码
hashmap的实现方法 java hashmap 数组 java 取模 -
hashmap的类结构 java hashmap的构造方法
一.HashMap的整体架构: 1.HashMap是由Entry[]构建而成,每个Entry都是一个单链表用于解决hash值冲突的问题。
hashmap的类结构 java hashmap java 源码 链表 -
网页部署centos
Web前端经典面试题有哪些?如何能走向高薪之路?Web前端在近几年是越来越火热了,很多人看到了前端的高薪资,更看到了前端行业的发展前景,所以纷纷投入到学习前端技术学习中来。下面给大家总结整理一些Web前端经典面试题,助力大家找到更好的工作,走向高薪前端之路。 1、CSS,JS代码压缩,以及代码CDN托管,图片整合。 (1)CSS,JS 代码压缩: 可以应用gulp的gulp
网页部署centos 前端多图片上传怎么控制顺序 前端如何实现网络速度测试功能 前端显示本地图片 怎样在线把别人web前端代码抓下