在 Java 中反转数组

2022-08-31 20:41:31

如果我有一个这样的数组:

1 4 9 16 9 7 4 9 11 

反转数组的最佳方法是什么,使其如下所示:

11 9 4 7 9 16 9 4 1 

我有下面的代码,但我觉得这有点乏味:

public int[] reverse3(int[] nums) {
    return new int[] { nums[8], nums[7], nums[6], nums[5], num[4],
                       nums[3], nums[2], nums[1], nums[0] };
}

有没有更简单的方法?


答案 1

Collections.reverse() 可以为您完成这项工作,如果您将数字放在 .ListIntegers

List<Integer> list = Arrays.asList(1, 4, 9, 16, 9, 7, 4, 9, 11);
System.out.println(list);
Collections.reverse(list);
System.out.println(list);

输出:

[1, 4, 9, 16, 9, 7, 4, 9, 11]
[11, 9, 4, 7, 9, 16, 9, 4, 1]

答案 2

如果要就地反转数组:

Collections.reverse(Arrays.asList(array));

它之所以有效,是因为 Arrays.asList 将直写代理返回到原始数组。