List<Map<String, String>>如何根据map的value排序,用stream
时间: 2024-09-24 18:17:37 浏览: 42
List<Bean>转换为List<Map>
在Java中,如果想要根据`Map<String, String>`的`String`值对`List<Map<String, String>>`进行排序,你可以使用Java 8引入的Stream API。首先,假设你想根据每个map的一个特定键(value)来进行排序,例如"age"。这是一个例子:
```java
import java.util.Comparator;
import java.util.List;
import java.util.Map;
// 假设你的map都有相同的key "age"
List<Map<String, String>> mapList = ...;
// 使用lambda表达式和Comparator
Comparator<Map<String, String>> byAge = (m1, m2) -> {
String age1 = m1.get("age");
String age2 = m2.get("age");
return age1.compareTo(age2); // 比较年龄字符串
};
// 使用sorted()方法和提供的Comparator
List<Map<String, String>> sortedList = mapList.stream()
.sorted(byAge)
.collect(Collectors.toList());
```
这将返回一个新的列表,其中的map是根据"age"值升序排列的。如果你想降序排列,只需改变`compareTo()`方法为`Integer.reverseOrder()`。
阅读全文