zoukankan      html  css  js  c++  java
  • Map

    1.Map概述

      1.map集合中有 建 ,建头有个对应的值(映射),

        一个映射不能包含重复的键

        每个键最多只能映射到一个值

      2.Map和Collection接口的不同,

        map是双列集合,Collection是单列集合

        Map的键是唯一,Collection的子系Set是唯一的

        Map集合的数据结构只针对键有效  

      3.当集合中建重复时,对应的值取到的内容是最后一次添加进去的内容

     2.Map集合的功能

      

     1         //返回值被覆盖的内容
     2         //第一次添加值时,集合中没有数据,被覆盖的内容为null,所以返回null
     3         Map<String, Integer> map = new HashMap<>();
     4         map.put("a", 1);
     5         map.put("a", 3);        //此时输出,返回值是1
     6         map.put("f", 4);
     7         map.put("t", 2);
     8         System.out.println(map);//输出结果为    {a=3, t=2, f=4}
     9         map.size();                //长度
    10         map.remove("a");         //删除指定键,与映射值
    11         map.containsKey("a");    //是否包含键为"a"的的内容
    12         map.containsValue(2);    //是否包含值为2的内容
    13         map.clear();            //清空
    14         map.isEmpty();            //是否为空
    15         
    16     }

     3.Map的遍历

     第一种

     1     /*
     2          * 1,首先获得到map中所有键,
     3          * 2.在通过键获得对应的内容
     4          */
     5         Map<String, Integer> map = new HashMap<>();
     6         map.put("a", 1);
     7         map.put("a", 3);        //此时输出,返回值是1
     8         map.put("f", 4);
     9         map.put("t", 2);
    10     
    11         /*
    12          * 先把键都添加到set集合中,
    13          * 在使用set集合的迭代器,
    14          * 通过get方法,在获取对应的值
    15          */
    16         Set<String> set = map.keySet();
    17         Iterator<String> it = set.iterator();
    18         while(it.hasNext()) {
    19             String s = it.next();
    20             Integer a = map.get(s);
    21             System.out.println(a+ " ");
    22         }

     第二种遍历方式

     1     HashMap<String, Integer> map = new HashMap<>();
     2         map.put("a", 1);
     3         map.put("a", 3); // 此时输出,返回值是1
     4         map.put("f", 4);
     5         map.put("t", 2);
     6         // 获取键值对对象
     7         Set<Map.Entry<String, Integer>> set = map.entrySet();
     8         // 迭代器
     9         Iterator<Map.Entry<String, Integer>> it = set.iterator();
    10         while (it.hasNext()) {
    11             // 获取到每个键值对对象
    12             Map.Entry<String, Integer> en = it.next();
    13             String s = en.getKey();
    14             Integer i = en.getValue();
    15        System.out.println(s + " " + i);
    16         }

     第三种

        缺点不能删除

    1      for (Map.Entry<String, Integer> entry : set) {
    2             System.out.println(entry.getKey() + " " + entry.getValue());
    3         }

      

     3.map遍历自定义对象

    用增强for循环遍历

    需要重写hashcode,和equals方法

    4.linkedHashMap

      保证怎么存怎么取的集合

     

     5,treemap集合

      排序去重复 treeset和treemap的功能是一样的

       遍历自定义对象时,要记得Comparable

  • 相关阅读:
    js导出excel增加表头、mso-number-format定义数据格式
    $.each() 与 $(selector).each()的区别
    【Linux常用命令】Linux kill, killall, kill -9,
    Shell 语法报错记录
    【常用脚本记录1----挂测问题脚本】
    【】系统一启动就会运行的程序
    【WAN】PPPOE宽带上网功能详解
    解决linux awk:line的问题
    Ubuntu 16.04安装测试MQTT Mosquitto
    【TCP协议详解】
  • 原文地址:https://www.cnblogs.com/xsh726/p/11422769.html
Copyright © 2011-2022 走看看