1. 双列汇合

双列汇合也是用于存储数据的,然而与单列汇合不同的是,双列汇合是以key=value
的模式存在的。每个局部蕴含两局部key和value。

2. 特点

  • Map键是无序、不可反复和无索引的。
  • Map值是不做要求的。
  • Map存雷同键的值,后者会笼罩前者
  • Map的键和值都能够是null

3. 双列汇合体系

  • HashMap:键无序、不反复和无索引,值不做要求。(哈希表加值元素)
  • LinkedHashMap:键有序、不反复和无索引,值不做要求。(哈希表加双向链表)
  • TreeMap:键依照规定排序、不反复和无索引,值不做要求。(红黑树)

4. 罕用API

Map罕用API:

办法名称阐明
V put(K key,V value)增加元素
V remove(Object key)依据键删除键值对元素
void clear()移除所有的键值对元素
boolean containsKey(Object key)判断汇合是否蕴含指定的键
boolean containsValue(Object value)判断汇合是否蕴含指定的值
boolean isEmpty()判断汇合是否为空
int size()汇合的长度,也就是汇合中键值对的个数

5. 格局

HashMap<键类型, 值类型> 变量名 = new HashMap<>()

6. Map汇合遍历

6.1 键找值的办法

选取得Map的键,而后通过键取得对应的值。

public class HashMapTest1 {    public static void main(String[] args) {        HashMap<Integer, String> hashMap = new HashMap<>();        hashMap.put(1, "张三");        hashMap.put(2, "李四");        hashMap.put(3, "王二");        Set<Integer> integers = hashMap.keySet();        for (Integer integer : integers) {            System.out.println("{key=" + integer + ", value=" + hashMap.get(integer) + "}");        }    }}

6.2 迭代器形式

把键值对看成一个对象,取得这个对象汇合进行遍历

public class HashMapTest2 {    public static void main(String[] args) {        HashMap<Integer, String> hashMap = new HashMap<>();        hashMap.put(1, "张三");        hashMap.put(2, "李四");        hashMap.put(3, "王二");        Set<Map.Entry<Integer, String>> entries = hashMap.entrySet();        for (Map.Entry<Integer, String> entry : entries) {            System.out.println("{key=" + entry.getKey() + ", value=" + entry.getValue() + "}");        }    }}

6.3 Lambda表达式

public class HashMapTest3 {    public static void main(String[] args) {        HashMap<Integer, String> hashMap = new HashMap<>();        hashMap.put(1, "张三");        hashMap.put(2, "李四");        hashMap.put(3, "王二");        // 传统匿名外部类        hashMap.forEach(new BiConsumer<Integer, String>() {            @Override            public void accept(Integer integer, String s) {                System.out.println("{key=" + integer + ", value=" + s + "}");            }        });                // Lambda表达式        hashMap.forEach((i, s) -> System.out.println("{key=" + i + ", value=" + s + "}"));    }}

本章完结,用于集体学习和小白入门,大佬勿喷!心愿大家多多点赞珍藏撑持撑持!

源码 【GitHub】 【码云】