java基础复习 - 5 - 数组
数组
数组
- 存放数据统一类型或者可以自动转换的
double[] arr = new double[3]; arr[0] = 1; - 数组创建后如果没有赋值是有默认值的
 - 数组属于引用类型,数组型数据是对象(object)
 
数组复制机制
- 基本数据类型赋值,这个值就是具体的数据,而且相互不影响,基本数据类型赋值方式为值拷贝,数组默认情况下是引用传递,赋的值为地址
 
二维数组
列数可以不确定 int[] x,y[];表示x是一个一维数组,y是一个二维数组
int[][] arr = new int[3][];
for (int i = 0; i < arr.length; i++) {
    // 如果没给一维数组new arr[i] null
    arr[i] = new int[i+1];
    // 遍历 赋值
    for (int j = 0; j < arr[i].length; j++) {
        arr[i][j] = i+1;
    }
}
杨辉三角
- 第一行有一个元素。第n行有n个元素
 - 第一行的第一个元素和最后一个元素都是1
 - 从第三行开始,对于非第一个元素和最后一个元素的元素的值.arr[i][j] = arr[i-1][j-1] + arr[i-1][j] // 必须找到这个规律
 
private static void yangHui(int level) {
        int[][] arr = new int[level][];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new int[i+1];
            for (int j = 0; j < arr[i].length; j++) {
                if (j == 0 || j == arr[i].length - 1) {
                    arr[i][j] = 1;
                    continue;
                }
                arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j] + " ");
            }
            System.out.println();
        }
    }
private static void insertArr(int[] arr, int num) {
    /*
        已知有个升序的数组,要求插入一个元素,该数组顺序依然是升序,比如:
        [10, 12, 45, 90] 添加23后,数组为[10, 12, 23, 45, 90]
    */
    int[] arr2 = new int[arr.length+1];
    int index = -1;
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] >= num) {
            index = i;
            break;
        }
    }
    System.out.println("index : " + index);
    index = index == -1? arr.length : index;
    
    for (int i = 0, j = 0; i < arr2.length; i++) {
        if (i != index) {
            arr2[i] = arr[j];
            j++;
        } else {
            arr2[i] = num;
        }
    }
    for (int j = 0; j < arr2.length; j++) {
        System.out.println(arr2[j]);
    }
}
                    
                
                
            
        
浙公网安备 33010602011771号