java实现将list<Map>中是否有key1的对应值为value1和key2对应值为value2的map留下,其他的删除
时间: 2024-09-12 11:16:02 浏览: 43
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
在Java中,你可以通过遍历List<Map>,然后检查每个Map是否同时包含指定的key1和value1以及key2和value2来实现这个功能。如果满足条件,就保留这个Map;如果不满足,就将其从List中移除。以下是一个简单的实现示例:
```java
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ListMapFilter {
public static void main(String[] args) {
// 创建示例数据
List<Map<String, String>> list = new ArrayList<>();
Map<String, String> map1 = new HashMap<>();
Map<String, String> map2 = new HashMap<>();
Map<String, String> map3 = new HashMap<>();
map1.put("key1", "value1");
map1.put("key2", "value2");
map2.put("key1", "value1");
map2.put("key2", "value3");
map3.put("key1", "value3");
map3.put("key2", "value2");
list.add(map1);
list.add(map2);
list.add(map3);
// 筛选满足条件的Map
List<Map<String, String>> filteredList = filterListMap(list, "key1", "value1", "key2", "value2");
// 输出结果
for (Map<String, String> map : filteredList) {
System.out.println(map);
}
}
public static List<Map<String, String>> filterListMap(
List<Map<String, String>> list, String key1, String value1, String key2, String value2) {
List<Map<String, String>> result = new ArrayList<>();
for (Map<String, String> map : list) {
if (value1.equals(map.get(key1)) && value2.equals(map.get(key2))) {
result.add(map);
}
}
return result;
}
}
```
在这个例子中,`filterListMap`方法接收一个List<Map<String, String>>和两个键值对作为参数,然后检查每个Map中的对应键是否匹配这两个键值对。如果都匹配,就将该Map添加到结果列表中。最后返回的结果列表包含了所有满足条件的Map。
阅读全文