Java多条件排序使用Comparator和thenComparing【包含排序List<Map<String, String>>】
import java.util.*;
public class SortExample {
public static void main(String[] args) {
List<Map<String, String>> list = new ArrayList<>();
list.add(createMap("A", "1", "B", "1"));
list.add(createMap("A", "2", "B", "1"));
list.add(createMap("A", "1", "B", "2"));
list.add(createMap("A", "2", "B", "2"));
list.sort(Comparator.comparing(map -> map.get("A"))
.thenComparing(map -> map.get("B")));
list.forEach(System.out::println);
}
private static Map<String, String> createMap(String... keyValues) {
Map<String, String> map = new HashMap<>();
for (int i = 0; i < keyValues.length; i += 2) {
map.put(keyValues[i], keyValues[i + 1]);
}
return map;
}
}
这段代码首先创建了一个包含有Map的List,每个Map包含键值对"A"和"B"。然后使用Comparator.comparing
来按照Map中的"A"键的值进行排序,接着使用thenComparing
来按照Map中的"B"键的值进行次要排序。最后,打印排序后的列表。这是一个简单的多条件排序示例。
评论已关闭