List<Map<String, Object>> result = jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh()); 如何对该集合根据特定字段去重
时间: 2024-02-03 08:11:20 浏览: 128
对于一个Java的List<Map<String, Object>>集合,可以使用Java8的流式API对该集合进行去重操作。具体步骤如下:
1. 使用stream()方法将集合转换为流式数据。
2. 使用distinct()方法对流式数据进行去重操作。
3. 使用collect()方法将去重后的数据重新转换为List集合。
代码示例如下:
```
List<Map<String, Object>> result = jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh());
List<Map<String, Object>> distinctList = result.stream()
.filter(distinctByKey(map -> map.get("特定字段")))
.collect(Collectors.toList());
// 自定义去重方法
public static <T> Predicate<T> distinctByKey(Function<? super T, ?> keyExtractor) {
Set<Object> seen = ConcurrentHashMap.newKeySet();
return t -> seen.add(keyExtractor.apply(t));
}
```
其中,特定字段需要替换为实际需要去重的字段名称。这里使用了Java8的ConcurrentHashMap和Lambda表达式来实现去重操作。
阅读全文