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 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)); } }