当前位置: 首页 > 知识库问答 >
问题:

Java8:在一行中反转一个int数组(使用Streams API)[重复]

万俟玉书
2023-03-14

我试图解决一个挑战,它要求您在Java中反转int数组。问题是您只能获得一个,所以我假设您需要使用Streams API来完成此操作。

我尝试了传统的方法,它正确地反转了数组,但失败了一个分号测试-

  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();
  }
public static int[] reverse(int[] a) {
    return Arrays.stream(a).boxed()
     .sorted(Comparator.reverseOrder())
     .mapToInt(i -> i).toArray();
  }

共有1个答案

蒋健
2023-03-14

您可以通过反转索引流来实现:

return IntStream.range(0, a.length)
        .map(i -> a[a.length - 1 - i])
        .toArray();
 类似资料:
  • 问题内容: 这是我遇到的一个常见面试问题,但是我未能按照要求进行改进。 几乎每个人都可以考虑使用HashSet,并在解析时将其添加到其中。这将导致O(n)时间和O(n)空间。此后,我被要求在没有其他数据结构的情况下进行解决。我说过最愚蠢的想法是在O(n ^ 2)时间里比较每个对象。然后要求我改善O(n ^ 2)时间。 为了改善它,我想到了使用固定大小的数组(假设最大数量为n),boolean []

  • 问题内容: 我试图在Java中反转一个int数组。 此方法不会反转数组。 怎么办 问题答案: 要反转一个int数组,可以交换项直到达到中点为止,如下所示: 这样,你将每个元素交换两次,因此结果与初始列表相同。

  • 我使用了下面的逻辑,但是得到一个异常“Java . lang . stringindexoutofboundsexception”。感谢帮助。谢谢大家!!

  • 问题内容: 我正在尝试使用数组切片来反转NumPy数组的一部分。例如,如果我的数组是 那我就可以切片b 这是原始数组的视图。我想要的是部分反转的视图,例如 如果您不完全了解NumPy的设计方式,则会遇到性能问题,因此,我希望避免使用“花哨的”索引。 问题答案: 如果您不喜欢指数下跌

  • 问题内容: 谁能向我解释如何在不使用数组或字符串的情况下反转整数。我从网上获得了此代码,但并没有真正理解为什么+输入%10并再次除法。 以及如何使用此示例代码来仅反转奇数。例子我得到了这个输入12345,然后它将奇数反转为输出531。 问题答案: 我不清楚你的奇数。该代码的工作方式是(不是Java特定的算法)例如。输入= 2345 while循环中的第一次rev = 5输入= 234第二时间rev

  • 我试图在二维数组中反转数组。 我做了一个函数,它接受二维数组的,并在上面执行。这将获取每个内部数组并将其反转。然后,我尝试将刚刚反转的独立数组,并尝试对其进行以反转数组内的每个值(