• map的方法


    1.   Map.get方法——返回指定键所映射的值

    该方法返回指定键所映射的值。如果此映射不包含该键的映射关系,则返回null。

    语法  get(Object key)) 

    key:是指定的Map集合中的键名。

    例如:public static void main(String[] args) {
      Map map = new HashMap();     //定义Map集合对象
      map.put("apple", "新鲜的苹果");    //向集合中添加对象
      map.put("computer", "配置优良的计算机");
      map.put("book", "堆积成山的图书");
      Object get = map.get("apple");  

     if (get instanceof String) {    //判断键值是否为String类型
       String value = (String) get;    //获取指定的value值
       System.out.println("在Map集合中键名apple的键值是:" + value); //将value值输出
      }

    输出值 为 "新鲜的苹果",即返回key键值 所对应的value值

    2.   containsKey

    Map可以出现在k与v的映射中,v为null的情况, 所以containsKey出现更加必要

    Map集合允许值对象为null,并且没有个数限制,所以当get()方法的返回值为null时,可能有两种情况,一种是在集合中没有该键对象,另一种是该键对象没有映射任何值对象,即值对象为null。因此,在Map集合中不应该利用get()方法来判断是否存在某个键,而应该利用containsKey()方法来判断

    public static void main(String[] args) {
    Map<Integer, String> map = new HashMap<Integer, String>();
    map.put(220180, null);
    map.put(220181, "马先生");
    System.out.println("get()方法的返回结果:");
    System.out.print("------ " + map.get(220180));
    System.out.print("    " + map.get(220181));
    System.out.println("    " + map.get(220182));
    System.out.println("containsKey()方法的返回结果:");
    System.out.print("------ " + map.containsKey(220180));
    System.out.print("    " + map.containsKey(220181));
    System.out.println("    " + map.containsKey(220182));
    }

    执行上面的代码,在控制台将输出如下信息:
    get()方法的返回结果:
    ------ null    马先生    null
    containsKey()方法的返回结果:
    ------ true    true      false

    3.   keySet()方法获取所有的key值

    Map map = new HashMap();
       map.put(1, "a");
       map.put(2, "b");
       map.put(3, "c");
       map.put(4, "d");
       Set keys1 = map.keySet();
       Set keys2 = map.keySet();
       Set keys3 = map.keySet();

    上面三个set对象key1,key2,key3引用的是一个对象。这时map的keySet()方法只返回一个set实例,所以当从key1中删除一个对象时候,key2和key3将会受到影响。
       keys1.remove(1);
       System.out.println(keys1);
       System.out.println(keys2);
       System.out.println(keys3);
    打印结果为:
    [2, 4, 3]
    [2, 4, 3]
    [2, 4, 3]

    keySet
    public Set<K> keySet()返回此映射中所包含的键的 set 视图。该集合受映射的支持,所以映射的变化也反映在该集合中,反之亦然。该集合支持元素的移除,通过 Iterator.remove、Set.remove、removeAll、retainAll 和 clear 操作,从该映射中移除相应的映射关系。它不支持 add 或 addAll 操作。

    指定者:
    接口 Map<K,V> 中的 keySet
    覆盖:
    类 AbstractMap<K,V> 中的 keySet
    返回:
    此映射所包含的键的 set 视图。

    关于Map的for 循环

    根据JDK5的新特性,用For循环Map,例如循环Map的Key

    for(String dataKey : paraMap.keySet()) { System.out.println(dataKey ); }

    注意的是paraMap 是怎么样定义的,如果是简单的Map paraMap = new HashMap ();那前面的String就只能换成Object了.

    循环整个map的key和value

    Map<Integer,String> map = new LinkedHashMap<Integer,String>();

     map.put(1, "星期一");

    map.put(2, "星期二");

     map.put(3, "星期三");

     map.put(4, "星期四");

     map.put(5, "星期五");

    map.put(6, "星期六");

    map.put(7, "星期日");

     for(Map.Entry<Integer, String> entry: map.entrySet()) {

    System.out.print(entry.getKey() + ":" + entry.getValue() + " ");

     }

    输出結果:

    1:星期一 2:星期二 3:星期三 4:星期四 5:星期五 6:星期六 7:星期日

  • 相关阅读:
    LeetCode 79. 单词搜索
    LeetCode 1143. 最长公共子序列
    LeetCode 55. 跳跃游戏
    LeetCode 48. 旋转图像
    LeetCode 93. 复原 IP 地址
    LeetCode 456. 132模式
    LeetCode 341. 扁平化嵌套列表迭代器
    LeetCode 73. 矩阵置零
    LeetCode 47. 全排列 II
    LeetCode 46. 全排列
  • 原文地址:https://www.cnblogs.com/zjf6666/p/7088701.html
Copyright © 2020-2023  润新知