不用Stream对List<Map<String,Object>>去重
时间: 2023-04-08 15:04:16 浏览: 40
可以使用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>>进行排序
可以使用Java 8的流式API和Comparator来对List<Map<String, Object>>进行排序。以下是示例代码:
```java
List<Map<String, Object>> list = new ArrayList<>();
// 添加Map数据
Map<String, Object> map1 = new HashMap<>();
map1.put("name", "张三");
map1.put("age", 20);
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("name", "李四");
map2.put("age", 18);
list.add(map2);
Map<String, Object> map3 = new HashMap<>();
map3.put("name", "王五");
map3.put("age", 22);
list.add(map3);
// 按照年龄从小到大排序
List<Map<String, Object>> sortedList = list.stream()
.sorted(Comparator.comparingInt(map -> (int) map.get("age")))
.collect(Collectors.toList());
```
在代码中,我们首先创建了一个List<Map<String, Object>>,其中包含了三个Map对象。然后,我们使用stream()方法将List转换为Stream,接着使用sorted()方法和Comparator.comparingInt()方法按照年龄从小到大排序。最后,我们使用collect()方法将Stream转换为List并将结果保存在sortedList中。