List<Map<String, Object>> result = jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh()) .stream() .filter(distinctByKey(item -> Arrays.asList(item.get("sm"), item.get("jsbh"),item.get("code")))) .collect(Collectors.toList()); 爆红
时间: 2024-01-01 21:03:27 浏览: 115
java代码-使用java解决bean&map工具类的源代码
这段代码可能是因为 `distinctByKey` 方法未定义而导致编译错误。请确保该方法已经被正确地定义。
另外,如果您使用的是 Java 8 或更高版本,可以考虑使用 `Collectors.toMap` 方法来实现去重操作,例如:
```
List<Map<String, Object>> result = jxMjKhTxService.selectJxMjkhTxData(constantProperties.getJsbh())
.stream()
.collect(Collectors.toMap(
item -> Arrays.asList(item.get("sm"), item.get("jsbh"), item.get("code")),
Function.identity(),
(a, b) -> a
))
.values()
.stream()
.collect(Collectors.toList());
```
该代码使用 `Collectors.toMap` 方法将列表中的元素转换为一个键值对映射,其中键由 `Arrays.asList(item.get("sm"), item.get("jsbh"), item.get("code"))` 生成,值为元素本身。由于可能存在重复的键,因此我们需要提供一个合并函数 `(a, b) -> a` 来处理冲突。最后,我们通过 `values()` 方法获取映射中的所有值,并使用 `Collectors.toList()` 方法将它们收集到一个新的列表中。
阅读全文