我正在尝试解决challenge,它要求您在Java中反转;
数组。问题是你只得到一个 public static int[] reverse(int[] a) {
List<Integer> numbers = IntStream.of(a).boxed().collect(Collectors.toList());
Collections.reverse(numbers);
return numbers.stream().mapToInt(i -> i).toArray();
}
,所以我假设你需要使用Streams API来做到这一点。
我尝试了传统方式,它正确地反转了数组,但没有通过一个分号测试 -
public static int[] reverse(int[] a) {
return Arrays.stream(a).boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(i -> i).toArray();
}
接下来,我尝试使用Collections.reversedOrder() -
Collections.reversedOrder()
但是,由于{5, 4, 3, 2, 1}
会对集合中元素的自然排序进行反向,因此如果数组由数字1到5组成,则不会无论数组中元素的顺序是什么,它总是返回static void printInteger(object i)
{
Console.Write(i + " ");
}
。
有一个Comparator.reversed()方法,但需要在现有的Comparator上调用它。我不知道该怎么做,或者甚至可以这样做。
还有其他办法吗?
答案 0 :(得分:0)
您可以通过反转索引流来完成此操作:
return IntStream.range(0, a.length)
.map(i -> a[a.length - 1 - i])
.toArray();