如何在 Java 中反转 int/String 数组

在本教程中,我们将学习如何在 Java.

反转数组似乎很容易!它看起来像这样,因为您需要做的就是创建一个相同大小的表格,从头到尾遍历原始表格并填写新表格,仅此而已!你有一个数组,其元素的顺序与原始数组的顺序相反,但问题是你在这里使用了额外的数组,如果它的 O(n) 复杂度非常大,它将占用大量空间。想象一下,您的看板包含 100 万个项目,而您没有足够的空间。问题是,我们能否在不求助于占用大量空间的额外表格的情况下反转图片?这里解决方案的关键是了解在不使用临时缓冲区的情况下反转数组需要什么,但您可以使用变量来存储值。

您也可以直接使用 java.util.Arrays 或 java.util.Collections.

回到手动交换项目的方法,直到达到中点,每次都将当前值存储在临时变量中以避免像这样覆盖它:

public class reverse_Array {

public static void main(String[] args) {
int[] array ={1, 2, 3, 4};

//显示 array
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
//反转数组元素
for(int i = 0; i < array.length / 2; i++)
{
int temp = array[i];
array[i] = array[array.length - i - 1];
array[array.length - i - 1] = 温度;
}
//显示倒排数组的整数
System.out.println(倒排数组”);
for(int i = 0; i < array.length; i++)
{
System.out.println(array[i]);
}
}
}
编译和执行此代码将产生以下结果:

1
2
3
4
array
4
3
2
1
为什么我们停在中间?因为当我们到达中间时,我们只是反转了所有值,如果你继续到数组的末尾,你反转每个元素两次,那么结果是相同的.

使用 ArraysUtils.reverse()

使用 Commons lang 的 Java 库,java.lang API 包含诸如操作字符串、数字方法等方法......点击下载 java.lang 并将其导入到您的项目中。

您可以轻松使用以下方法 ArrayUtils.reverseint[] array

import java.util.Arrays;
导入 org.apache.commons.lang3.ArrayUtils;

public class reverse_array_strings {

public static void main(String[] args) {
String[] string_array ={a”, b”, c”};

//显示数组字符串
for(int i = 0; i < string_array.length; i++)
{
System.out.println(string_array[i]);
}
//反转数组
ArrayUtils.reverse(string_array);

//显示倒置数组的字符串
System.out.println(倒置数组”);
for(int i = 0; i < string_array.length; i++)
{
System.out.println(string_array[i]);
}
}
}
以下是此代码作为输出给出的内容:

a
b
c
array
c
b
a
大多数时候, 轻松使用库更快、更安全,因为它可以避免错误,并且经过其编辑器的测试。

使用 Collections.reverse()

此方法仅适用于 java object collections,因此我们需要将数组转换为 java.util.List 方法 Arrays.asList(),然后调用方法 Collections.reverse(),最后使用 toArray().

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class reverse_array_list {
public static void main(String[] args) {
Object[] string_objects ={abc”, 12, 54, 'c', 99};

//显示数组字符串
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}

//将数组转换为 List
列表<对象>列表 = Arrays.asList(string_objects);
//反转array中的对象
Collections.reverse(list);
//从列表中获取数组
string_objects = list.toArray();

//显示倒置数组的字符串
System.out.println(倒置对象数组”);
for(int i = 0; i < string_objects.length; i++)
{
System.out.println(string_objects[i]);
}
}
}
结果:

abc
12
54
c
99
倒置对象数组
99
c
54
12
abc
References:
Stackoverflow: How do I reverse an int array in Java?
Commons lang: Java.lang API
如何在 Java 中反转数组?