java/ReverseElements.java

37 lines
1.1 KiB
Java
Raw Normal View History

2025-10-27 20:15:18 +08:00
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class ReverseElements {
// 双指针 ArrayList 反转元素 出自 java.util.Collections#reverse
public static void array() {
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7));
int size = list.size();
Integer x, y;
for (int begin = 0, mid = size >> 1, end = size - 1; begin < mid; begin++, end--) {
x = list.get(begin);
y = list.get(end);
list.set(begin, y);
list.set(end, x);
}
System.out.println(list);
}
// 双指针反转字符串 String无法直接操作内部的char数组 避免不了2倍内存开销
public static void main(String[] args) {
String str = "1234567";
char[] chars = str.toCharArray();
int len = chars.length;
char x, y;
for (int index = 0, mid = len >> 1, end = len - 1; index < mid; index++, end--) {
x = chars[index];
y = chars[end];
chars[index] = y;
chars[end] = x;
}
System.out.println(new String(chars));
}
}