集合之Map

集合之Map

Map的常用方法

以下代码列举Map的常用方法:

package com.javalearn.map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

public class TestForMap {
    public static void main(String[] args) {
        Map<Integer,String> map = new HashMap<>();
        map.put(1,"zhang");  // 添加键值对,此处 1 自动装箱
        map.put(2,"li");
        System.out.println(map.get(2));  // 获取键对应值
        System.out.println("键值对的个数:" + map.size());  // 获取键值对个数

        System.out.println();
        Collection<String> values = map.values();  // 获取所有值
        for(String s:values) {
            System.out.println(s);
        }

        System.out.println();
        map.remove(2);  // 删除一个键值对
        System.out.println("键值对的个数:" + map.size());
        System.out.println(map.containsKey(1));  // 是否包含键,此处contains底层使用equals方法比对,因此自定义的类型需要重写equals方法
        System.out.println(map.containsValue("zhang"));  // 是否包含值
        map.clear();  // 清空
        System.out.println(map.isEmpty());  // 判断是否为空

    }
}

输出结果:

li
键值对的个数:2

zhang
li

键值对的个数:1
true
true
true

Process finished with exit code 0

遍历Map

以下代码使用多个方法遍历Map:

package com.javalearn.map2;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

public class TestForMap2 {
    public static void main(String[] args) {  // 十分重要
        Map<Integer,String> map = new HashMap<>();
        map.put(1,"zhang");
        map.put(2,"wang");

        // 法一:遍历key,由key得value,有2中循环方法,while和for
        Set<Integer> keys = map.keySet();  // 获取key集合
        Iterator<Integer> it = keys.iterator();
        while (it.hasNext()) {  // while循环
            Integer key = it.next();
            String value = map.get(key);
            System.out.println(key+"="+value);
        }
        for (Integer key:keys) {  // 增强for循环
            System.out.println(key+"="+map.get(key));
        }
        System.out.println();

        // 法二:把键值对结合成一个对象,此方法效率更高,适合大数据量
        Set<Map.Entry<Integer,String>> set = map.entrySet();  // 每个键值对都变成Map.Entry的对象,所有键值对构成集合
        Iterator<Map.Entry<Integer,String>> it2 = set.iterator();
        while (it2.hasNext()) {
            Map.Entry<Integer,String> node = it2.next();
            Integer key = node.getKey();  // 获得entry对象的键
            String value = node.getValue();  // 获得entry对象的值
            System.out.println(key+ "="+value);
        }
    }
}

输出结果:

1=zhang
2=wang
1=zhang
2=wang

1=zhang
2=wang

Process finished with exit code 0

posted on 2021-12-10 21:02  菜小疯  阅读(46)  评论(0编辑  收藏  举报