行业资讯 2025年08月6日
0 收藏 0 点赞 364 浏览 1810 个字
摘要 :

文章目录 1.Collections.reverse() API 2.在For循环中交换数组元素 3. 使用 Stream API 反转数组 4.ArrayUtils.reverse() 5.结论 了解如何在 Java 中反转数组。反转数……




  • 1.Collections.reverse() API
  • 2.在For循环中交换数组元素
  • 3. 使用 Stream API 反转数组
  • 4.ArrayUtils.reverse()
  • 5.结论

了解如何在 Java 中反转数组。反转数组与原始数组大小相同,并且包含相同的元素,但顺序相反。

String[] array          = {\"A\", \"B\", \"C\", \"D\", \"E\"};

String[] reveresedArray = {\"E\", \"D\", \"C\", \"B\", \"A\"};

1.Collections.reverse() API

翻转数组的最简单方法是使用专为此目的构建的现有API。Collections.reverse() 方法就是这样的一个API。该方法会颠倒列表中的元素,因此我们必须首先通过使用 java.util.Arrays.asList(array) 将数组转换为列表,然后再颠倒列表。这将同时颠倒支持数组中的元素。

请注意,reverse() 方法会颠倒原始数组中元素的顺序。因此,如果您希望保持原始数组不变,请考虑首先克隆数组。

//反转对象数组
String[] array = {\"A\", \"B\", \"C\", \"D\", \"E\"};
Collections.reverse(Arrays.asList(array));
System.out.println(Arrays.toString(array)); //[E, D, C, B, A]

警告:请注意,reverse() API 不适用于原始数组,因为Arrays.asList(intArray) 将返回一个包含唯一元素为原始数组的 List<int[]>。因此,没有要颠倒的内容。

//不适用于原始数组
int[] array = {1, 2, 3};
Collections.reverse(Arrays.asList(array));   //数组未反转

2.在For循环中交换数组元素

另一种简单直接的方法是迭代数组,将起始位置的元素与最后位置的元素交换。

例如,给定的图像描述了交换过程,其中我们有一个包含 5 个元素的数组。

  • 在第一次迭代中,我们交换第一个和最后一个元素。
  • 在第二次迭代中,我们交换第二个和倒数第二个元素。
  • 同样的交换在for 循环中进行,直到到达数组的中间,此时数组已被反转。

Java 中反转数组

String[] array = {\"A\", \"B\", \"C\", \"D\", \"E\"};
for (int i = 0; i < array.length / 2; i++) {
    String temp = array[i];
    array[i] = array[array.length - 1 - i];
    array[array.length - 1 - i] = temp;
}
System.out.println(Arrays.toString(array)); //[E, D, C, B, A]

3. 使用 Stream API 反转数组

在这种方法中,我们将从最后一个位置开始反向读取数组元素,然后将所有元素存储在一个新数组中。

在这种方法中,原始数组保持不变。

final String[] arr = new String[]{\"A\",\"B\",\"C\",\"D\",\"E\"};
Object[] reversedArr = IntStream.rangeClosed(1, array.length)
    .mapToObj(i -> arr[arr.length - i])
    .toArray();
System.out.println(Arrays.toString(reversedArr)); //[E, D, C, B, A]

4.ArrayUtils.reverse()

如果我们的应用程序现有对Apache Commons Lang 库的依赖,那么它就有一个出色且直接的 API 来反转任何类型的数组。

String[] array = {\"A\", \"B\", \"C\", \"D\", \"E\"};
ArrayUtils.reverse(arr);
System.out.println(Arrays.toString(arr)); //[E, D, C, B, A]

5.结论

在这个简短的教程中,我们学习了使用不同的技巧来翻转数组。我们学会了使用 for 循环、交换元素、Collections API 以及 Apache Commons 的 ArrayUtils 类。

在任何一种方法中,如果您想保持原始数组不变,请首先克隆数组,然后再对其应用翻转逻辑。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9254.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号