乐趣区

关于java:Java基础14双列集合Map

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】【码云】

退出移动版