译自: 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...
欢迎留言