• Java


    Map

    1、Map实现类:HashMap、Hashtable、LinkedHashMap、TreeMap

    • HashMap 
      • 新增元素/获取元素
         1     void contextLoads() {
         2         //声明
         3         Map<String,Object> hashMapOne=new HashMap<>();
         4 
         5         // .put 添加元素,添加重复的key,不会添加成功,但是会更新key对应的value值
         6         hashMapOne.put("name","zhangsan");
         7         hashMapOne.put("name","lisi");
         8         System.out.println(hashMapOne.get("name"));  //输出结果是 lisi(替换了原来的zhangsan)
         9 
        10         // .putIfAbsent key存在时,不覆盖原来key的value值,也不新增这个重复的key
        11         hashMapOne.put("age","3");
        12         hashMapOne.putIfAbsent("age","10");
        13         System.out.println(hashMapOne.get("age"));  //输出结果是3,没有被替换
        14 
        15         // .putall 复制,将所有元素从一个HashMap复制到另一个HashMap
        16         Map<String,Object> hashMapTwo=new HashMap<>();
        17         hashMapTwo.put("age","5");
        18         hashMapTwo.put("sex","女");
        19         hashMapTwo.putAll(hashMapOne);
        20         //hashMapOne中的age覆盖了hashMapTwo原来的age,输出3
        21         System.out.println(hashMapTwo.get("age"));
        22         //hashMapOne中没有sex,所以输出hashMapTwo原来的sex,女
        23         System.out.println(hashMapTwo.get("sex"));
        24         //hashMapOne中的name,复制到了hashMapTwo中,输出lisi
        25         System.out.println(hashMapTwo.get("name"));
        26 
        27         // .get获取元素上面的输出语句有
        28         // .getOrDefault 当key不存在时,设置一个默认值,输出"上海"
        29         System.out.println(hashMapOne.getOrDefault("area","上海"));
      • 遍历元素
         1     void contextLoads() {
         2         //声明
         3         Map<String,Object> hashMapOne=new HashMap<>();
         4         hashMapOne.put("name","zhangsan");
         5         hashMapOne.put("age","25");
         6         hashMapOne.put("area","上海");
         7 
         8         //1、使用keySet获取所有的Key,然后遍历
         9         System.out.println("方式1:使用keySet遍历");
        10         for (String key : hashMapOne.keySet()){
        11             System.out.println(key + "  " + hashMapOne.get(key));
        12         }
        13 
        14         //2、使用Map.entrySet获取所有的元素,然后使用iterator遍历
        15         System.out.println();
        16         System.out.println("方式2:通过Map.entrySet使用iterator遍历");
        17         Iterator<Map.Entry<String,Object>> iterator=hashMapOne.entrySet().iterator();
        18         while (iterator.hasNext()){
        19             Map.Entry<String, Object> entry = iterator.next();
        20             System.out.println("Key:" + entry.getKey() + ",Value:" + entry.getValue());
        21         }
        22 
        23         //3、用Map.entrySet获取所有的元素,然后使用foreach循环遍历
        24         System.out.println();
        25         System.out.println("方式3:通过Map.entrySet使用foreach循环遍历");
        26         for (Map.Entry<String, Object> entry : hashMapOne.entrySet()) {
        27             System.out.println("Key:" + entry.getKey() + ",Value:" + entry.getValue());
        28         }
        29 
        30         //4、直接使用values获取到所有的值,该种方式无法遍历Key
        31         System.out.println();
        32         System.out.println("方式4:使用values遍历,使用这种方式无法遍历Key");
        33         for (Object value : hashMapOne.values()) {
        34             System.out.println(value);
        35         }
        36     }
    • HashMap、Hashtable、LinkedHashMap、TreeMap 的区别
      相同点:
      • 都实现了Map接口
      • 都不允许key重复
      不同点
    不同点 HashMap Hashtable LinkedHashMap TreeMap
    排序 不排序 不排序 按插入顺序排序
    有默认排序
    【按照key的字典顺序升序排序】
    可自定义排序
    null值
    Key:允许
    Value:允许
    Key:不允许
    Value:不允许
    Key:允许
    Value:允许
    Key:不允许
    Value:允许
    线程安全 非线程安全 线程安全 非线程安全 非线程安全
    继承的父类 AbstractMap Dictionary HashMap>AbstractMap AbstractMap
  • 相关阅读:
    训练深度学习网络时候,出现Nan 或者 震荡
    Jupyter Notebook 的快捷键
    pyspark RandomForestRegressor 随机森林回归
    深度学习图像标注工具VGG Image Annotator (VIA)使用教程
    python 中 with 用法
    python 报错 SyntaxError: Non-ASCII character
    YOLO 详解
    Spark与Pandas中DataFrame对比
    利用WGET下载文件,并保存到指定目录
    http 三次握手
  • 原文地址:https://www.cnblogs.com/mysummary/p/12292745.html
Copyright © 2020-2023  润新知