Map

作者: 泥布偶 | 来源:发表于2021-04-08 03:00 被阅读0次

    Map键值(key-value)映射表的数据结构,作用就是能高效通过key快速查找value(元素)。

    Map也是一个接口,最常用的实现类是HashMap。

    特性

    -不保证顺序
    -虽然key不能重复,但value是可以重复的

    Map和List不同的是,Map存储的是key-value的映射关系,并且,它不保证顺序。在遍历的时候,遍历的顺序既不一定是put()时放入的key的顺序,也不一定是key的排序顺序。使用Map时,任何依赖顺序的逻辑都是不可靠的。以HashMap为例,假设我们放入"A","B","C"这3个key,遍历的时候,每个key会保证被遍历一次且仅遍历一次,但顺序完全没有保证,甚至对于不同的JDK版本,相同的代码遍历的输出顺序都是不同的!

    Map中不存在重复的key,因为放入相同的key,只会把原有的key-value对应的value给替换掉。

    方法

    调用get(K key)时,就可以通过key获取到对应的value。如果key不存在,则返回null

    调用put(K key, V value),如果key已经存在,put()方法会返回被删除的旧的value,否则,返回null。

    遍历

    '''
    import java.util.HashMap;
    import java.util.Map;
    public class Main {
    public static void main(String[] args) {
    Map<String, Integer> map = new HashMap<>();
    map.put("apple", 123);
    map.put("pear", 456);
    map.put("banana", 789);
    for (String key : map.keySet()) {
    Integer value = map.get(key);
    System.out.println(key + " = " + value);
    }
    //遍历key
    for (String key : map.keySet()) {
    Integer value = map.get(key);
    System.out.println(key + " = " + value);
    }
    for (Map.Entry<String, Integer> entry : map.entrySet()) {
    String key = entry.getKey();
    Integer value = entry.getValue();
    System.out.println(key + " = " + value);
    }

    Set<Map.Entry<Integer, String>> set = map.entrySet();

        Iterator<Map.Entry<Integer, String>> it = set.iterator();
    
        while (it.hasNext()) {
            
            // 返回的是封装了key和value对象的Map.Entry对象
            Map.Entry<Integer, String> en = it.next();
    
            // 获取Map.Entry对象中封装的key和value对象
            Integer key = en.getKey();
            String value = en.getValue();
    
            System.out.println("key=" + key + " value=" + value);
        }
    
    }
    

    }

    '''

    相关文章

      网友评论

          本文标题:Map

          本文链接:https://www.haomeiwen.com/subject/fwqmkltx.html