List<Map<String, Object>> stram流 先用A升序在按B降序
时间: 2023-05-11 14:06:14 浏览: 108
可以使用Java 8的Stream API来实现这个需求,代码如下:
List<Map<String, Object>> list = new ArrayList<>();
// 假设list已经被初始化并填充了数据
list.stream()
.sorted(Comparator.comparing(m -> m.get("A").toString()))
.sorted(Comparator.comparing(m -> m.get("B").toString(), Comparator.reverseOrder()))
.collect(Collectors.toList());
这段代码会先按照Map中键为"A"对应的值进行升序排序,然后再按照键为"B"对应的值进行降序排序。最后返回一个新的List,其中的元素顺序符合排序的要求。
相关问题
List<Map<String, Object>> stram流 用两个字段排序
可以使用Java 8的Stream API来对List<Map<String, Object>>进行排序,具体的代码如下:
List<Map<String, Object>> list = new ArrayList<>();
// 添加数据到list中
list.add(new HashMap<String, Object>() {{
put("name", "张三");
put("age", 20);
}});
list.add(new HashMap<String, Object>() {{
put("name", "李四");
put("age", 25);
}});
list.add(new HashMap<String, Object>() {{
put("name", "王五");
put("age", 22);
}});
// 使用Stream API对list进行排序
List<Map<String, Object>> sortedList = list.stream()
.sorted(Comparator.comparingInt(o -> (int) o.get("age")).thenComparing(o -> (String) o.get("name")))
.collect(Collectors.toList());
// 输出排序后的结果
System.out.println(sortedList);
这段代码会按照年龄升序排序,如果年龄相同则按照姓名升序排序。
stram 流处理 list转map
可以使用Java 8中的Stream API来将List转换为Map。示例代码如下:
```
List<String> list = Arrays.asList("apple", "banana", "orange");
Map<String, Integer> map = list.stream().collect(Collectors.toMap(Function.identity(), String::length));
```
这个例子将List中的每个元素作为Map的key,将元素的长度作为value。如果List中有重复的元素,会抛出`IllegalStateException`异常,可以通过提供一个合并函数来解决这个问题。
阅读全文