gpt4 book ai didi

java - 反转 Queue 并将其转换为 int 数组

转载 作者:搜寻专家 更新时间:2023-10-30 21:15:14 24 4
gpt4 key购买 nike

我有一个 Queue<Integer>声明为 Queue<Integer> queue=new LinkedList(); ,我需要把里面的元素顺序倒过来,然后转成int数组。我写了下面的代码:

Collections.reverse((List)queue);
int[] res=queue.stream().mapToInt(Integer::intValue).toArray();

这段代码有两个问题:

  1. 显式转换 (List)queue ;
  2. 我想知道是否有一个在线解决方案。

那么我们有没有更优雅的方式来做到这一点?


问题的澄清:

队列是否颠倒并不重要。我需要一个反转元素的 int 数组。

最佳答案

首先,不要使用原始类型(使用菱形运算符)。不完全是一个类轮,但您可以先转换为 int[] 然后使用 commons lang ArrayUtils.reverse(int[])喜欢

Queue<Integer> queue = new LinkedList<>();
// ...
int[] arr = queue.stream().mapToInt(Integer::intValue).toArray();
ArrayUtils.reverse(arr);

您还可以编写自己的 int[] 反向方法,允许流畅的界面(例如返回 int[]),然后您可以将其设为单行.喜欢,

public static int[] reverse(int[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
int temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
return arr;
}

然后

int[] arr = reverse(queue.stream().mapToInt(Integer::intValue).toArray());

关于java - 反转 Queue<Integer> 并将其转换为 int 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54031994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com