Map映射总结

一个键对应一个值。键是唯一的,值可以重复。
每一个键和它所对应的值构成了键值对。
一个Map是由多个键值对来组成。
将每一个键值对看作一个对象,抽取出来一个代表键值对的接口Entry,
Entry是Map中的内部接口 — 一个Map是由多个Entry对象来组成的
Map不是集合,但是是Java集合框架的成员。
Java集合框架(Java Collections Framework)包含:集合、数组、映射以及操作它们的工具类 –Arrays、Collections、Interator、Comparable、Comparator

HashMap:底层是基于哈希码进行存储,使用的是数组+链表结构。默认初始容量是16,默认加载因子是0.75f,每次默认增加一倍。容量是一定是2n的形式。允许键或者值为null,本身是一个异步式线程不安全的映射

Hashtable:底层也是基于哈希码进行存储,使用的是数组+链表结构。默认初始容量是11,默认加载因子是0.75f,每次默认增加一倍,再+1。不允许键和值为null。本身是一个同步式线程安全的映射。

遍历映射

方法一
    Map<String ,Integer> map = new HashMap<>();
    map.put("d",4);
    map.put("c",4);
    map.put("b",4);
    map.put("e",4);
/**
    * 遍历映射
    * 方式1 先获取映射中所有键组成的集合,获取所有键,通过键获取值
    * keyset表示将映射集合中的键放入集合set中
    */
    Set<String> set = map.keySet();
    for (String key : set) {
        System.out.println(key+"="+map.get(key));
    }
方法二
/**
     * 方式2 将所有键值对放入集合中,然后通过遍历集合获取键值对的数据
     *      entrySet表示将映射中所有的键值对放入一个Set集合中
     */
    Set<Map.Entry<String, Integer>> set = map.entrySet();
    for (Map.Entry<String, Integer> entry : set) {
        System.out.println(entry.getKey()+"="+entry.getValue());
    }

猜你喜欢

转载自blog.csdn.net/Gavin_W_/article/details/82559732