Java 从 HashMap 获取 Submap

2022-05-19 21:04:32

译自: https://www.baeldung.com/java-get-submap?__s=pcpsy4rws2dn7knp2ecz 

如果使用 JDK8 stream

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class GetSubMap {

    public static void main(String[] args) throws Exception {

        Map<Integer, String> map = new HashMap<>();
        map.put(1, "A");
        map.put(2, "B");
        map.put(3, "C");
        map.put(4, "D");
        map.put(5, "E");

        List<Integer> keyList = Arrays.asList(1, 2, 3);

        Map<Integer, String> subMap = map.entrySet().stream()
                    .filter(x -> keyList.contains(x.getKey()))
            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

        System.out.println(subMap);
    }
}


如果使用 retainAll() 方法

import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class TmpTest16 {

    public static void main(String[] args) throws Exception {

        Map<Integer, String> map = new HashMap<>();
        map.put(1, "A");
        map.put(2, "B");
        map.put(3, "C");
        map.put(4, "D");
        map.put(5, "E");

        List<Integer> keyList = Arrays.asList(1, 2, 3);

        Map<Integer, String> newMap = new HashMap<>(map);
        newMap.keySet().retainAll(keyList);

        System.out.println(newMap);
    }
}


Donate 打赏

Loading...
欢迎留言
您的称呼
Email
Phone


<提交留言>