Java如何逆序
逆序数组或列表
在Java中逆序一个数组或列表可以通过多种方式实现。以下是几种常见的方法:
使用 Collections.reverse() 方法
适用于 List 类型的数据结构,如 ArrayList 或 LinkedList。
import java.util.Collections;
import java.util.ArrayList;
import java.util.List;
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
Collections.reverse(list);
System.out.println(list); // 输出 [3, 2, 1]
手动逆序数组 通过交换数组元素实现逆序。
int[] array = {1, 2, 3, 4, 5};
for (int i = 0; i < array.length / 2; i++) {
int temp = array[i];
array[i] = array[array.length - 1 - i];
array[array.length - 1 - i] = temp;
}
System.out.println(Arrays.toString(array)); // 输出 [5, 4, 3, 2, 1]
逆序字符串
字符串逆序可以通过 StringBuilder 或手动交换字符实现。
使用 StringBuilder.reverse()
String str = "Hello";
String reversed = new StringBuilder(str).reverse().toString();
System.out.println(reversed); // 输出 "olleH"
手动逆序字符串
String str = "Hello";
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length / 2; i++) {
char temp = chars[i];
chars[i] = chars[chars.length - 1 - i];
chars[chars.length - 1 - i] = temp;
}
String reversed = new String(chars);
System.out.println(reversed); // 输出 "olleH"
逆序链表
如果是自定义链表结构,可以通过修改指针方向实现逆序。
单链表逆序示例
class ListNode {
int val;
ListNode next;
ListNode(int val) { this.val = val; }
}
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode current = head;
while (current != null) {
ListNode nextTemp = current.next;
current.next = prev;
prev = current;
current = nextTemp;
}
return prev;
}
逆序数字
逆序一个数字可以通过数学运算实现。

int num = 12345;
int reversed = 0;
while (num != 0) {
reversed = reversed * 10 + num % 10;
num /= 10;
}
System.out.println(reversed); // 输出 54321
注意事项
- 对于数组或字符串,手动逆序时需注意边界条件(如长度为奇数或偶数)。
- 链表逆序时需正确处理指针,避免丢失节点引用。
- 数字逆序需考虑溢出问题(如逆序后超出
int范围)。





