不用Stream对List<Map<String,Object>>去重 
时间: 2023-04-08 18:04:16 浏览: 24
可以使用Java 8中的Stream API中的distinct()方法对List<Map<String,Object>>进行去重。具体实现可以参考以下代码:
List<Map<String,Object>> list = new ArrayList<>();
// 添加数据到list中
list.add(map1);
list.add(map2);
list.add(map3);
// 使用Stream API进行去重
List<Map<String,Object>> distinctList = list.stream().distinct().collect(Collectors.toList());
相关问题
对List<Map<String,Object>>去重
可以使用Java 8的Stream API来去重,具体代码如下:
List<Map<String, Object>> list = new ArrayList<>();
// 添加数据到list中
List<Map<String, Object>> distinctList = list.stream()
.collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(m -> m.get("key")))), ArrayList::new));
// distinctList即为去重后的结果
使用stream流对List<Map<String,Object>>进行排序
可以使用 Stream API 对 List<Map<String, Object>> 进行排序。首先,将 List 转换成 Stream,然后使用 sorted 方法进行排序。sorted 方法接受一个 Comparator 参数,用于指定排序规则。
例如,如果想要按照 Map 中的 "name" 字段进行排序,可以这样写:
```
List<Map<String, Object>> list = ...;
list.stream()
.sorted(Comparator.comparing(m -> m.get("name")))
.collect(Collectors.toList());
```
如果 "name" 字段为 null,则会放到最后。如果想要使用其他的排序规则,可以使用其他重载的 sorted 方法或者使用 thenComparing 方法来组合多个排序规则。
还有,如果想要对 Map 的键进行排序,可以使用 Stream API 对 Map 进行排序。这里给出一个例子:
```
Map<String, Object> map = ...;
map.entrySet()
.stream()
.sorted(Map.Entry.comparingByKey())
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
```
这样就可以对 Map 中的键进行排序了。
相关推荐














