IT干货网

集合之Map

itxm 2022年03月12日 编程设计 161 0

集合之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 
 

评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

集合之泛型