public class test1 { public static void main(String[] args) { //定义 HashMaphashMap = 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 hashMap1 = new HashMap<>(); hashMap1.put("age", "18"); hashMap1.put("name", "John"); hashMap.putAll(hashMap1); System.out.println("插入后的hashMap:" + hashMap); //获取key的集合 Set set = new HashSet<>(); set = hashMap.keySet(); System.out.println("key的集合为:" + set); //获取value的集合 Collection values = hashMap.values(); System.out.println("value的集合:" + values); //获取key-value的集合 Set > 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); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)