使用java,如何将HashMap<String,Integer>的键进行过滤,留下的值必须是数组new Long(){1,2,3}中的数据
时间: 2024-09-12 07:01:55 浏览: 37
java中hashmap容量的初始化实现
5星 · 资源好评率100%
在Java中,你可以通过遍历HashMap并检查每个键对应的值是否存在于指定Long数组中来实现这个过滤操作。这里是一个简单的示例:
```java
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// 创建一个HashMap和一个Long数组
HashMap<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
map.put("D", 4); // 示例:这行可以移除,因为其值不在数组中
Long[] array = {1L, 2L, 3L};
// 过滤HashMap,只保留值在数组中的键
ArrayList<String> filteredKeys = new ArrayList<>();
for (Map.Entry<String, Integer> entry : map.entrySet()) {
if (Arrays.asList(array).contains(entry.getValue())) {
filteredKeys.add(entry.getKey());
}
}
System.out.println("Filtered keys: " + filteredKeys); // 输出:[A, B, C]
// 如果需要,你可以将List转换回HashMap,如下所示:
HashMap<String, Integer> filteredMap = new HashMap<>(filteredKeys.size());
for (String key : filteredKeys) {
filteredMap.put(key, map.get(key));
}
// 现在filteredMap只包含原map中值在array中的元素
}
}
```
在这个例子中,我们首先创建了一个HashMap,然后遍历它的entrySet,如果值在数组`array`中,我们就将其键添加到`filteredKeys`列表里。最后,你可以根据需要创建一个新的HashMap,只包含过滤后的键值对。
阅读全文