1 package com.demo; 2 3 /* 4 * 數組元素的反轉(不使用新數組) 5 * 實現數組元素的反轉,就是把數組中對稱位置的元素調換 6 */ 7 8 public class ArrayReverse { 9 public static void main(String[] args) { 10 // 定義一個數組 11 int[] arr = new int[] { 10, 50, 30, 25, 70, 35 }; 12 13 // 遍歷原數組 14 System.out.print("反轉前的數組:"); 15 for (int i = 0; i < arr.length; i++) { 16 System.out.print(arr[i] + " "); 17 } 18 System.out.println(); 19 20 // 交換對稱位置的元素 21 /* 22 * 實現原理: 23 * 定義兩個變量來存儲索引值 24 * int first = 0; // 0號索引值 25 * int last = arr.length - 1; // 最大索引值 26 * 27 * 1.拿數組中0號索引位置的元素和最大索引位置的元素交換 28 * 2.拿數組中1號索引位置的元素和第二大索引位置的元素交換 29 * 其實就是對稱位置的元素進行交換 30 * ...... 31 * 以此類推,當 first>=last 的時候,停止交換 32 * 換句話說,交換的條件為:first<last 33 */ 34 // 方式一 35 for (int first = 0, last = arr.length - 1; first < last; first++, last--) { 36 int temp = arr[first]; 37 arr[first] = arr[last]; 38 arr[last] = temp; 39 } 40 41 // 方式二 42 // for (int i = 0; i < arr.length / 2; i++) { 43 // int temp = arr[i]; 44 // arr[i] = arr[arr.length - i - 1]; 45 // arr[arr.length - i - 1] = temp; 46 // } 47 48 // 遍歷反轉后的數組 49 System.out.print("反轉后的數組:"); 50 for (int i = 0; i < arr.length; i++) { 51 System.out.print(arr[i] + " "); 52 } 53 System.out.println(); 54 } 55 }
運行結果:
反轉前的數組:10 50 30 25 70 35
反轉后的數組:35 70 25 30 50 10