zoukankan      html  css  js  c++  java
  • MAP使用方法集合

    一、整理:

         看到array,就要想到角标。

         看到link,就要想到first,last。

         看到hash,就要想到hashCode,equals.

         看到tree,就要想到两个接口。Comparable,Comparator。

    二、Map与Collection在集合框架中属并列存在

        1.Map存储的是键值对

        2.Map存储元素使用put方法,Collection使用add方法

        3.Map集合没有直接取出元素的方法,而是先转成Set集合,在通过迭代获取元素

        4.Map集合中键要保证唯一性

    也就是Collection是单列集合, Map 是双列集合。

    总结:

         Map一次存一对元素, Collection 一次存一个。Map 的键不能重复,保证唯一。

         Map 一次存入一对元素,是以键值对的形式存在.键与值存在映射关系.一定要保证键的唯一性.

    三、Map中常见方法:

    1、添加:

        1、V put(K key, V value)    (可以相同的key值,但是添加的value值会覆

    盖前面的,返回值是前一个,如果没有就返回null)                                          

        2、putAll(Map<? extends K,? extends V> m)  从指定映射中将所有映射关

    系复制到此映射中(可选操作)。

    2、删除

        1、remove()    删除关联对象,指定key对象

        2、clear()     清空集合对象

    3、获取

         1:value get(key); 可以用于判断键是否存在的情况。当指定的键不存在的时候,返

    回的是null。

    3、判断:

        1、boolean isEmpty()   长度为0返回true否则false

        2、boolean containsKey(Object key)  判断集合中是否包含指定的key

    3、boolean containsValue(Object value)  判断集合中是否包含指定的value

    4、长度:

        Int size()

    四、遍历Map的方式:

       1、将map 集合中所有的键取出存入set集合。

           Set<K> keySet()   返回所有的key对象的Set集合,再通过get方法获取键对应的值。

       2、 values() ,获取所有的值.

           Collection<V> values()不能获取到key对象

       3、 Map.Entry对象  推荐使用   重点

           Set<Map.Entry<k,v>> entrySet()   将map 集合中的键值映射关系打包成一个对象。

           Map.Entry对象通过Map.Entry 对象的getKey,getValue获取其键和值。

    第一种方式:使用keySet

    将Map转成Set集合(keySet()),通过Set的迭代器取出Set集合中的每一个元素(Iterator)就是Map集合中的所有的键,再通过get方法获取键对应的值。

    复制代码
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    public class Demo1 {
        public static void main(String[] args) {
            Map<Integer, String> map = new HashMap<Integer, String>();
            map.put(1, "aaaa");
            map.put(2, "bbbb");
            map.put(3, "cccc");
            System.out.println(map);
    
            //
            // 获取方法:
            // 第一种方式: 使用keySet
            // 需要分别获取key和value,没有面向对象的思想
            // Set<K> keySet() 返回所有的key对象的Set集合
    
            Set<Integer> ks = map.keySet();
            Iterator<Integer> it = ks.iterator();
            while (it.hasNext()) {
                Integer key = it.next();
                String value = map.get(key);
                System.out.println("key=" + key + " value=" + value);
            }
        }
    }
    复制代码

    第二种方式: 通过values 获取所有值,不能获取到key对象

    复制代码
     1 public static void main(String[] args) {
     2         Map<Integer, String> map = new HashMap<Integer, String>();
     3         map.put(1, "aaaa");
     4         map.put(2, "bbbb");
     5         map.put(3, "cccc");
     6         System.out.println(map);
     7 // 第二种方式:
     8         // 通过values 获取所有值,不能获取到key对象
     9         // Collection<V> values()
    10 
    11         Collection<String> vs = map.values();
    12         Iterator<String> it = vs.iterator();
    13         while (it.hasNext()) {
    14             String value = it.next();
    15             System.out.println(" value=" + value);
    16         }
    17 }
    复制代码

    第三种方式: Map.Entry

    public static interface Map.Entry<K,V>   通过Map中的entrySet()方法获取存放Map.Entry<K,V>对象的Set集合。

    Set<Map.Entry<K,V>> entrySet()    面向对象的思想将map集合中的键和值映射关系打包为一个对象,就是Map.Entry,将该对象存入Set集合,Map.Entry是一个对象,那么该对象具备的getKey,getValue获得键和值。

    复制代码
     1 public static void main(String[] args) {
     2         Map<Integer, String> map = new HashMap<Integer, String>();
     3         map.put(1, "aaaa");
     4         map.put(2, "bbbb");
     5         map.put(3, "cccc");
     6         System.out.println(map);
     7         // 第三种方式: Map.Entry对象 推荐使用 重点
     8         // Set<Map.Entry<K,V>> entrySet()
     9         
    10 
    11         // 返回的Map.Entry对象的Set集合 Map.Entry包含了key和value对象
    12         Set<Map.Entry<Integer, String>> es = map.entrySet();
    13 
    14         Iterator<Map.Entry<Integer, String>> it = es.iterator();
    15 
    16         while (it.hasNext()) {
    17             
    18             // 返回的是封装了key和value对象的Map.Entry对象
    19             Map.Entry<Integer, String> en = it.next();
    20 
    21             // 获取Map.Entry对象中封装的key和value对象
    22             Integer key = en.getKey();
    23             String value = en.getValue();
    24 
    25             System.out.println("key=" + key + " value=" + value);
    26         }
    27     }
  • 相关阅读:
    服务器状态码
    QuerySet中添加Extra进行SQL查询
    django配置一个网站建设
    MySQL数据库查询中的特殊命令
    125. Valid Palindrome
    121. Best Time to Buy and Sell Stock
    117. Populating Next Right Pointers in Each Node II
    98. Validate Binary Search Tree
    91. Decode Ways
    90. Subsets II
  • 原文地址:https://www.cnblogs.com/UUUz/p/8749907.html
Copyright © 2011-2022 走看看