Java 数组学习

208 阅读1分钟

一维数组的定义:

动态初始化数组:	int[] arr = new int[10];

静态初始化数组:	int[] array = new int{1,2,3,4,5}; | int[] array ={1,2,3,4,5};

int[] array,arrays;
注意:错误写法	array = {1,2,3,4,5};
     正确写法	array = new int []{1,2,3,4,5};

多维数组的定义:

int[][] arr = new int[3][3];

int[][] arr = {{1,2,3}, {4,5,6}, {7,8,9}};

数组的基本使用:

public class SortArray {

	public static void main(String[] args) {

    		int[] arr = new int[]{-10, 89, 35, 12, 99, 100};

    		arrayMax(arr);		//最大值

    		arrayMix(arr);		//最小值

    		arraySum(arr);		//总和

    		arrayMean(arr);		//平均值

    		arrayCopy(arr);		//复制

    		arrayInversion(arr);	//倒序

    		arrayInversion2(arr);	//倒序2

    		arrayBubble(arr);	//冒泡排序

	        arraySelectoron(arr);	//选择排序

	        yangHuiTriangle();	//杨辉三角
	}



    private static void arrayMax(int[] arr) {
        int max = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }

        System.out.println(max);
    }



    private static void arrayMix(int[] arr) {
        int mix = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] < mix) {
                mix = arr[i];
            }
        }
        System.out.println(mix);
    }



    private static void arraySum(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }

        System.out.println(sum);
    }



    private static void arrayMean(int[] arr) {
        int mean = 0;
        for (int i = 0; i < arr.length; i++) {
            mean += arr[i];
        }
        mean /= arr.length;
        System.out.println(mean);
    }



    private static void arrayCopy(int[] arr) {
        int[] arr2 = new int[arr.length];
        for (int i = 0; i < arr.length; i++) {
            arr2[i] = arr[i];
        }

        outPrint(arr2);
    }



    private static void arrayInversion(int[] arr) {
        int[] arr2 = new int[arr.length];

        int flag = arr.length - 1;
        for (int i = 0; i < arr.length; i++) {
            arr2[flag--] = arr[i];
        }

     	outPrint(arr2);
    }



    private static void arrayInversion2(int[] arr) {
        for (int x = 0, y = arr.length - 1; x < y; x++, y--) {
            arr[x] = arr[x] ^ arr[y];
            arr[y] = arr[x] ^ arr[y];
            arr[x] = arr[x] ^ arr[y];
        }

        outPrint(arr);
    }



    private static void arrayBubble(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] < arr[j + 1]) {
                    arr[j] = arr[j] ^ arr[j + 1];
                    arr[j + 1] = arr[j] ^ arr[j + 1];
                    arr[j] = arr[j] ^ arr[j + 1];
                }
            }
        }

      outPrint(arr);
    }



    private static void arraySelectoron(int[] arr) {
        for (int i = 0; i < arr.length - 1; i++) {
            int temp = i;
            for (int j = i; j < arr.length; j++) {
                if (arr[temp] > arr[j]) {
                    temp = j;
                }
            }
            if (temp != i) {
                arr[temp] = arr[temp] ^ arr[i];
                arr[i] = arr[temp] ^ arr[i];
                arr[temp] = arr[temp] ^ arr[i];
            }
        }

        outPrint(arr);
    }



    private static void yangHuiTriangle() {
        int[][] yh = new int[10][];

        for (int i = 0; i < yh.length; i++) {
            yh[i] = new int[i + 1];
        }

        for (int i = 0; i < yh.length; i++) {
            for (int j = 0; j < yh[i].length; j++) {
                yh[i][0] = yh[i][i] = 1;

                if (i > 1 && j > 0 && j < i) {
                    yh[i][j] = yh[i - 1][j] + yh[i - 1][j - 1];
                }
            }
        }

        for (int i = 0; i < yh.length; i++) {
            for (int j = 0; j < yh[i].length; j++) {
                System.out.print(yh[i][j] + "\t");
            }
            System.out.println();
        }
    }



   private static void outPrint(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print( arr[i] + "\t");
        }
    }
}