Java Map 过滤:基于 List 获取指定 Key 的键值对
你可以按照以下步骤在 Java 中查询 key 属于 list 中的所有键值对并生成新的 map:
- 创建一个空的新 map,用于存储查询结果。
- 遍历原始的 map 中的所有键值对。
- 对于每个键值对,检查其 key 是否属于 list 中。
- 如果 key 属于 list 中,则将该键值对存储到新的 map 中。
- 返回新的 map 作为查询结果。
以下是一个示例代码,演示如何实现上述逻辑:
import java.util.*;
public class Main {
public static void main(String[] args) {
Map<String, Integer> originalMap = new HashMap<>();
originalMap.put('A', 1);
originalMap.put('B', 2);
originalMap.put('C', 3);
originalMap.put('D', 4);
List<String> keyList = new ArrayList<>();
keyList.add('A');
keyList.add('C');
Map<String, Integer> resultMap = filterMapByKeyList(originalMap, keyList);
System.out.println(resultMap); // 输出:{A=1, C=3}
}
public static <K, V> Map<K, V> filterMapByKeyList(Map<K, V> originalMap, List<K> keyList) {
Map<K, V> resultMap = new HashMap<>();
for (Map.Entry<K, V> entry : originalMap.entrySet()) {
if (keyList.contains(entry.getKey())) {
resultMap.put(entry.getKey(), entry.getValue());
}
}
return resultMap;
}
}
在上述示例代码中,我们创建了一个原始的 map originalMap,其中包含了 4 个键值对。然后,我们创建了一个 list keyList,其中包含了两个 key:'A' 和 'C'。最后,我们调用 filterMapByKeyList 方法,将 originalMap 和 keyList 作为参数传递给该方法,得到了新的 map resultMap,其中只包含了原始 map 中 key 属于 list 的键值对。
请注意,上述代码中使用了泛型来支持不同类型的键和值。如果你的 map 和 list 中的键的类型不是 String 类型,你需要相应地调整泛型类型。
通过以上步骤和示例代码,你就可以轻松地使用 Java 代码从 Map 中过滤出 Key 属于 List 中的所有键值对,并生成新的 Map。
原文地址: https://www.cveoy.top/t/topic/p0Hh 著作权归作者所有。请勿转载和采集!