1. 程式人生 > >陣列和方法

陣列和方法

陣列與方法的互操作
1)方法接收陣列(多個棧記憶體指向同一個堆記憶體 ,方法中的形參在棧上開闢新空間)
2)方法返回陣列(要注意定義有一個返回陣列的方法時,返回值為陣列 eg:public static int[] init())
3) 方法修改陣列(因為陣列上發生了引用傳遞,所以方法在接收陣列後也可以修改陣列)
Java可以實現陣列排序(基本資料型別陣列都可以排序)java.util.Array.sort(arrayName);【是升序處理,內部使用雙軸快速排序】
也可以實現陣列拷貝(必須是連續的)System.arraycopy(源陣列名稱,源陣列開始點,目標陣列名稱,目標陣列開始點,拷貝長度)【源陣列的部分拷貝到目標陣列中!目標陣列和源陣列容易混淆】
陣列的整體拷貝:java.util.Arrays.copyof(源陣列名稱,新陣列長度)
使用陣列拷貝可以實現陣列擴容
小練習:
public class ArrayUtils{

// //1.計算陣列中最大值
// public static int arrayMaxElement(int[] data){
// int max=data[0];
// for(int i=0;i<data.length;i++){
// if(max<data[i]){
// max=data[i];
// }
// }
// return max;
// }

// // //2.計算陣列中最小值
// // public static int arrayMinElement(int[] data){
//     int min=data[0];
//     for(int i=0;i<data.length;i++){
//         if(min>data[i]){
//             min=data[i];
//         }
//     }
//     return min;
// }


// //3.計算陣列值之和
// public static int arrayElementSum(int[] data){
//     int sum=0;
//     for(int i=0;i<data.length;i++){
//      sum=sum+data[i];
//     }
//     return sum;
// }

// //4.陣列拼接
// // A {1,3,5,7,9} B {2,4,6,8,10} -> {1,3,5,7,9,2,4,6,8,10}
// public static int[] arrayJoin(int[] a, int[] b){
//     int len=a.length+b.length;
//     int []arr=new int[len];
//     for(int i=0;i<a.length;i++){
//         arr[i]=a[i];
//     }
//     for(int i=a.length;i<arr.length;i++){
//         arr[i]=b[i-a.length];
//     }
//     return arr;
// }

// // 5.陣列擷取
// // [start, end)
// // A {1,3,5,7,9} ->(A,1,3) > {3,5}
// public static int[] arraySub(int[] data, int start , int end){
//     int []arr=new int [end-start];
//     for(int i=start;i<=end-start;i++){
//         arr[i-start]=data[i];
//     }
//     return arr;
// }

// //6.陣列列印
// public static void printArray(int[] data){
//     for(int i=0;i<data.length;i++){
//         System.out.print(data[i]);
//     }
// }

// 7.陣列反轉
// 比如:[1,2,3,4] => [4,3,2,1]

public static void printReversal(int[] data){
int []arr=new int[data.length];
for( int i=0;i<data.length;i++){
arr[i]=data[data.length-i];
System.out.print(arr[i]);
}
}

public static void main(String[] args){
        int [] data1=new int []{1,3,5,7,9};
           int [] data2=new int []{2,4,6,8,10};
            // printArray(data1);
            // printArray(data2);
            // System.out.print(arrayMaxElement(data1));
            // System.out.print(arrayMinElement(data1));
            // System.out.print(arrayElementSum(data2));
            // int [] ret=arrayJoin(data1,data2);
            //   printArray(ret);
            // int []ret=arraySub(data1, 1, 3);
            // printArray(ret);
             printReversal(data1);
        }

}