zoukankan      html  css  js  c++  java
  • 集合-----双列

    Map

    双列集合图解:

     Map集合概述:

    • Interface Map<K,V> K :键的数据类型; V :值得数据类型
    • 键不能重复,值可以重复
    • 键和值是一一对应的,通过键只能找到自己对应的值
    • 每一对键值被称为键值对或者Entry对象

    Map集合简单添加代码如下:

      public static void main(String[] args) {
            Map<String, String> map = new HashMap<>();
            map.put("001", "小美");
            String s1 = map.put("002", "小明");
            map.put("003", "小刚");
            map.put("004", "小强");
            map.put("005", "大壮");
            System.out.println(s1);
            String s = map.put("001", "大壮");//如果添加的元素的键值已经存在那么
            // 会将原来的值替换成新的值,并将原来的值返回,
            // 如果添加的键值不存在,则直接添加,返回值为null
            System.out.println(s);
    
            System.out.println(map);
    
    
        }

    运行结果如下:

    Map集合的删除代码如下:

            Map<String, String> map = new HashMap<>();
            map.put("001", "小美");
            map.put("002", "小明");
            map.put("003", "小刚");
            map.put("004", "小强");
            map.put("005", "大壮");
            String s = map.remove("001");//返回删除元素的值
            System.out.println(s);
            System.out.println(map);
    
    
        }

    运行结果如下:

     Map集合移除所有元素的方法:

     1        Map<String, String> map = new HashMap<>();
     2         map.put("001", "小美");
     3         map.put("002", "小明");
     4         map.put("003", "小刚");
     5         map.put("004", "小强");
     6         map.put("005", "大壮");
     7       map.clear();//删除所有键值对对象
     8         System.out.println(map);
     9 
    10 
    11     }

    运行结果如下:

     Map集合判断是否存在指定Key值:

    代码如下:

     1     public static void main(String[] args) {
     2         Map<String, String> map = new HashMap<>();
     3         map.put("001", "小美");
     4         map.put("002", "小明");
     5         map.put("003", "小刚");
     6         map.put("004", "小强");
     7         map.put("005", "大壮");
     8         boolean b1= map.containsKey("001");//判断集合中是否存在指定的Key值,并返回boolean值
     9         boolean b2 = map.containsKey("009");
    10         System.out.println(b1);
    11         System.out.println(b2);
    12 
    13     }

    运行结果: 

     

     Map集合判断是否存在指定值:

    代码如下:

     1   public static void main(String[] args) {
     2         Map<String, String> map = new HashMap<>();
     3         map.put("001", "小美");
     4         map.put("002", "小明");
     5         map.put("003", "小刚");
     6         map.put("004", "小强");
     7         map.put("005", "大壮");
     8         boolean b1 = map.containsValue("小美");
     9         boolean b2 = map.containsValue("小小");//判断是否存在指定的值,并返回boolean值
    10         System.out.println(b1);
    11         System.out.println(b2);
    12 
    13     }

     运行结果:

     Map集合判断集合是否为空

    代码如下:

     1  public static void main(String[] args) {
     2         Map<String, String> map = new HashMap<>();
     3         map.put("001", "小美");
     4         map.put("002", "小明");
     5         map.put("003", "小刚");
     6         map.put("004", "小强");
     7         map.put("005", "大壮");
     8         boolean empty = map.isEmpty();//判断Map集合是否为空
     9         map.clear();
    10         boolean empty1 = map.isEmpty();
    11         System.out.println(empty);
    12         System.out.println(empty1);
    13 
    14     }

    运行结果:

    获得Map集合的键值对个数

    代码如下:

    1       Map<String, String> map = new HashMap<>();
    2         map.put("001", "小美");
    3         map.put("002", "小明");
    4         map.put("003", "小刚");
    5         map.put("004", "小强");
    6         map.put("005", "大壮");
    7         int size = map.size();//获得Map集合的键值对个数
    8         System.out.println(size);
    9     }

    运行结果:

     

     Map集合的两种遍历方式:

    第一种:使用keySet();方法获得存储所有键的Set集合然后用get();方法获得制定键对应的值

    代码如下:

     1     public static void main(String[] args) {
     2         Map<String, String> map = new HashMap<>();
     3         map.put("001", "小美");
     4         map.put("002", "小明");
     5         map.put("003", "小刚");
     6         map.put("004", "小强");
     7         map.put("005", "大壮");
     8         Set<String> set = map.keySet();//keySet();获得所有的键的Set集合
     9         for (String s : set) {
    10             String s1 = map.get(s);//get();方法获得指定键的值
    11             System.out.println(s+"     "+s1);
    12         }
    13     }

     运行结果为:

     第二种:首先使用entrySet();方法获得所有的键值对对象,然后根据对象使用getKey();和

    getValue();方法获得键和值;

    代码如下:

     1  public static void main(String[] args) {
     2         Map<String, String> map = new HashMap<>();
     3         map.put("001", "小美");
     4         map.put("002", "小明");
     5         map.put("003", "小刚");
     6         map.put("004", "小强");
     7         map.put("005", "大壮");
     8         Set<Map.Entry<String, String>> entries = map.entrySet();//获得所有的键值对对象
     9         for (Map.Entry<String, String> entry : entries) {
    10             String key = entry.getKey();//获得key值
    11             String value = entry.getValue();//获得Value值
    12             System.out.println(key+"    "+value);
    13         }
    14     }

     结果如下:

     HashMap(底层是hash表结构)

    (hash表在数据结构中解释)

    HashMap集合如果要存储自定义类对象必须要重写equals();和hashCode();方法

    TreeMap(底层是红黑树)

    (红黑树在数据结构中解释)

    TreeMap集合自定义对象要使用自然排序或者比较器排序重写其中的方法。只对键进行排序

    迎风少年
  • 相关阅读:
    activity(工作流)初步学习记录
    npm install出现npm ERR! write after end解决方法
    npm ERR! Cannot read property 'match' of undefined 错误处理
    gist.github.com 被墙无法访问解决办法
    AS SSD Benchmark固态硬盘检测工具
    VSCode 云同步扩展设置 Settings Sync 插件
    window系统不显示预览图片的处理方法
    VsCode如何同时打开多个项目
    win10的开机启动文件夹在哪及开机自动启动软件
    Java环境配置和tomcat环境配置
  • 原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13462665.html
Copyright © 2011-2022 走看看