Java-列表LocalTime的排序列表
我想用Java-列表LocalTime的排序列表,java,list,sorting,Java,List,Sorting,我想用stream()对列表进行排序 这就是列表的样子: [[21:29,22:29],[16:29,17:29]] 我希望清单是这样的 [[16:29,17:29],[21:29,22:29]] 您可以按照中所述定义比较器并执行排序 演示: import java.time.LocalTime; import java.util.ArrayList; import java.util.Comparator; import java.util.List; import java.util.st
stream()
对列表进行排序
这就是列表的样子:
[[21:29,22:29],[16:29,17:29]]
我希望清单是这样的
[[16:29,17:29],[21:29,22:29]]
您可以按照中所述定义比较器并执行排序
演示:
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.IntStream;
public class Main {
public static void main(String args[]) {
List<List<LocalTime>> list =
new ArrayList<>(List.of(
new ArrayList<>(List.of(LocalTime.of(21, 29), (LocalTime.of(22, 29)))),
new ArrayList<>(List.of(LocalTime.of(16, 29), (LocalTime.of(17, 29))))
));
Comparator<List<LocalTime>> comparator =
(list1, list2) ->
IntStream.range(0, list1.size())
.map(i -> list1.get(i).compareTo(list2.get(i)))
.filter(value -> value != 0)
.findFirst()
.orElse(0);
list.sort(comparator);
System.out.println(list);
}
}
[[16:29, 17:29], [21:29, 22:29]]
到目前为止你试过什么?到目前为止你试过什么?逻辑又是什么呢?你有一个列表,那么你如何在它们之间排序呢?这是一个列表列表。你不仅没有自己努力解决这个问题,甚至连你的要求都不清楚。你希望列表如何排序?对于像[[1,3],[2,4]]
这样的东西,您希望的顺序是什么?词汇的?一般?