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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理