可以使用Java 8的Stream API来对Map<String, List<String>>中的value按照其size进行排序。
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
// 创建一个包含多个List的Map
Map<String, List<String>> map = new HashMap<>();
map.put("A", new ArrayList<>(List.of("a", "b")));
map.put("B", new ArrayList<>(List.of("c", "d", "e")));
map.put("C", new ArrayList<>(List.of("f")));
// 根据List的size进行排序
List<Map.Entry<String, List<String>>> sortedList = map.entrySet()
.stream()
.sorted(Comparator.comparingInt(entry -> entry.getValue().size()))
.collect(Collectors.toList());
// 输出结果
for (Map.Entry<String, List<String>> entry : sortedList) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
代码中,首先创建了一个包含多个List的Map,然后使用Java 8的Stream API对Map中的value进行排序,主要步骤如下:
- 使用entrySet()方法将Map转换为Set集合,并遍历其中的每一项;
- 使用Comparator.comparingInt()方法进行比较器的构造,根据List的size进行排序;
- 使用Collectors.toList()方法将排序后的结果收集到一个新的List中。
最后,输出排序后的结果。
注意,在以上代码中,我们使用了Java 9的List.of()方法来快速创建ArrayList对象。如果你使用的是低于Java 9的版本,则可以手动创建一个空的ArrayList并调用其add()方法来添加元素。