我正在使用 BufferedReader
从 .txt 文件中读取数字。我想颠倒这个 Steam 中元素的顺序,这样当它们被收集时,它们将从最高到最低排列。我不想在构建数组后进行排序,因为我不知道其中可能有多少元素,我只需要最高的 N 个元素。
in = new BufferedReader(reader);
int[] arr = in.lines()
.mapToInt(Integer::parseInt)
.sorted()
.limit((long) N)
.toArray();
最佳答案
尝试在排序前取反值并在排序后取反(恢复正常):
in = new BufferedReader(reader);
int[] arr = in.lines()
.mapToInt(Integer::parseInt)
.map(i -> -i).sorted().map(i -> -i)
.limit((long) N)
.toArray();
关于java - 如何以相反的顺序对 IntStream 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30740471/