1. 程式人生 > >Java 005 方法 陣列 記憶體分配

Java 005 方法 陣列 記憶體分配

知識點梳理

Java day 05

心得體會

小知識點

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]+",");
            }
        }
    }
}