List<Map<String, Object>>删除其中不符合条件的map
时间: 2023-10-14 11:29:54 浏览: 39
假设需要删除的条件是某个key的值包含特定的字符串,可以使用以下代码:
```
List<Map<String, Object>> list = new ArrayList<>();
// 假设这里有一些map需要删除
String targetString = "target"; // 需要删除的字符串
// 使用迭代器遍历list,删除符合条件的map
Iterator<Map<String, Object>> iterator = list.iterator();
while (iterator.hasNext()) {
Map<String, Object> map = iterator.next();
if (map.containsKey("key") && map.get("key").toString().contains(targetString)) {
iterator.remove();
}
}
```
上述代码中,使用迭代器遍历list,并且判断每个map中是否包含需要删除的字符串,如果包含,则使用迭代器的remove()方法将该map从list中删除。最终,list中不符合条件的map会被删除。
相关问题
List<Object> 转 List<Map<String,Object>>
List<Object> 转 List<Map<String,Object>> 可以通过遍历 List<Object> 的每个元素,然后将每个元素转换为 Map<String,Object> 的形式,最后将转换后的 Map 添加到新的 List<Map<String,Object>> 中。
下面是一个示例代码:
```java
List<Object> objectList = new ArrayList<>();
// 假设 objectList 中已经有了一些对象
List<Map<String,Object>> mapList = new ArrayList<>();
for(Object obj : objectList) {
// 创建一个新的 Map
Map<String,Object> map = new HashMap<>();
// 将对象的属性转换为键值对,添加到 Map 中
// 这里假设对象有两个属性 name 和 age
map.put("name", obj.getName());
map.put("age", obj.getAge());
// 将转换后的 Map 添加到新的 List 中
mapList.add(map);
}
```
这样就可以将 List<Object> 转换为 List<Map<String,Object>>。请注意,上述示例中的 getName() 和 getAge() 是假设对象有这两个属性的方法,你需要根据实际情况修改代码。
对 List<Map<String, Object>>去重
对 List<Map<String, Object>> 进行去重可以使用 HashSet 数据结构来实现。HashSet 是一种不允许有重复元素的集合,可以用来去除重复的元素。
下面是一个示例代码,演示如何对 List<Map<String, Object>> 进行去重:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 假设 list 已经包含了多个 Map<String, Object> 元素
Set<Map<String, Object>> set = new HashSet<>(list);
List<Map<String, Object>> deduplicatedList = new ArrayList<>(set);
// deduplicatedList 就是去重后的 List<Map<String, Object>> 结果
```
这段代码首先将 List<Map<String, Object>> 转换为 HashSet,由于 HashSet 不允许有重复元素,所以重复的元素会被自动去除。然后再将 HashSet 转换回 List,得到去重后的结果。