Java 005 方法 陣列 記憶體分配
阿新 • • 發佈:2018-11-06
知識點梳理
心得體會
小知識點
1.方法呼叫:返回值型別為void時只能單獨呼叫,其他返回值型別可以根據需求選擇單獨呼叫、輸出呼叫、賦值呼叫
2.主函式呼叫方法的同時也是傳參給方法
3.方法過載只需記住一點:過載只與引數列表有關(個數、型別、順序),與其他無關
4.返回值型別為void時,return可不寫,但寫上的話,return後不能有返回值
5.一個數組中只能使用一種初始化方式
陣列倒序輸出
三種辦法:倒序輸出 、中間值交換(一個變數)、中間值交換(兩個變數)
public class ArrySwapDemo { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("請輸入陣列的長度(正整數)"); int n = scanner.nextInt(); int [] arr=new int[n]; System.out.println("請輸入"+n+"個整數,數字間用空格或換行隔開"); for (int i=0;i<n;i++){ arr[i]= scanner.nextInt(); } printArr1(arr,n);//輸出原陣列 swapArr1(arr,1);//倒序輸出原陣列 swapArr2(arr);//中間值交換 printArr2(arr,2);//輸出方法2交換後的陣列 swapArr2(arr);//由於方法2會改變原陣列索引與元素的對應關係,再呼叫一次恢復為原陣列 swapArr3(arr);//中間值交換 printArr2(arr,3);//輸出方法3交換後的陣列 } //列印輸出輸入陣列,注意換行問題 public static void printArr1(int[]arr,int n){ System.out.print("輸入的陣列是:["); for (int i=0;i<n;i++){ if (i==n-1){ System.out.println(arr[i]+"]"); }else{ System.out.print(arr[i]+","); } } } //方法一 //讓for迴圈從陣列索引最後一位向前迴圈,依次輸出,不改變原陣列元素與索引的對應關係,只是倒序輸出 public static void swapArr1(int[]arr,int a){ System.out.print("方法"+a+":陣列的倒序是:["); for (int i=arr.length-1;i>=0;i--){ if (i==0){ System.out.println(arr[i]+"]"); }else { System.out.print(arr[i]+","); } } } //方法二 //中間值交換,定義兩個變數,改變了原陣列元素與索引的對應關係 public static void swapArr2(int[]arr){ for (int i=0,j=arr.length-1;i<j;i++,j--){ int median=arr[i]; arr[i]=arr[j]; arr[j]=median; } } //方法三 //中間值交換,定義一個變數,改變了原陣列元素與索引的對應關係 public static void swapArr3(int[]arr){ for (int i=0;i<arr.length/2;i++){ int median=arr[i]; arr[i]=arr[arr.length-1-i]; arr[arr.length-1-i]=median; } } //列印輸出陣列的倒序,注意換行問題 public static void printArr2(int[]arr,int a){ System.out.print("方法"+a+":陣列的倒序是:["); for (int i=0;i<arr.length;i++){ if (i==arr.length-1){ System.out.println(arr[i]+"]"); }else { System.out.print(arr[i]+","); } } } }