我有一个整数输入,我想在所有奇数之前按升序对所有偶数进行排序,并保留赔率顺序。我很确定我可以通过收集器和/或下游收集器实现这一目标,但我不知道该怎么做。我想知道如何对错误列表进行排序,因此如果可能的话,我可以在一行中实现它。因此,在分组之后,我希望将错误列表按升序排序,而另一个(真实赔率列表)保持不变,并且在此转换之后能够将它们平面映射到一个列表中。
例子:
输入是:
1 6 2 3 4 5
Map<Boolean, List<Integer>> collect = Arrays
.stream(bf.readLine().split("\\s+"))
.map(Integer::parseInt)
.collect(Collectors.groupingBy(integer -> integer % 2 != 0));
System.out.println(collect);
上面代码的输出是:
{false=[6, 2, 4], true=[1, 3, 5]}
这行条目应变为:
{false=[2, 4, 6], true=[1, 3, 5]}
转换后。
输出应该是先于赔率的偶数,并按升序排序,同时保持赔率的顺序,如下所示:
2 4 6 1 3 5