20200923冯强

学习总结:

数组

  1. 数组是引用类型默认值为null

  2. 定义数组的几种方式:

    //不能再后面new的[]中写入长度 报错
    int[] nums = new int[] {1,2,3};
    //先给定数组长度 int类型初始值都为0
    int[] nums2 = new int[4];
    //简便写法
    int[] nums3 = {1,2,3};
    //但是这种写法错误
    //int[] nums4; nums4={1,2,3};
  3. new都会在堆中开辟空间 并且栈中存放引用的地址

  4. for-each

    int[] nums ={1,2,3};
    for(int i : nums){
    System.out.println(i);
    }//foreach中没有数组下标
  5. 二维数组:

    int[][] arrs = new int[][]{{1,2,3},{1,2,3}};
    一维数组存放的也是一个数组
    
  6. Arrays:

    toString 把数组转换为String

    equels 首先比较地址 不同比较是否为null 不是null比较每个元素

    copeof 创建一个新数组(源码)从传入的数组中取长度 若传入的数组不够 在末尾填默认值 若超出则取新数组的长度

System类

  1. ​ out输出流 in输入流 err输入错误
  2. arraycope: src(原数组) dest(将要改变的数组) srcPos(从原数组下标第几位开始截取) destPos(新数组第几位开始添加) length(截取的长度)

冒泡排序

int[] sums =new int [names.length];
   //最后一个元素不用比较所以-1
    for(int i=0;i<sums.length-1;i++) {
     //防止数组越界-1 不和已经最大的数再比较-i
            for(int j=0;j<sums.length-1-i;j++) {
                if(sums[j]<sums[j+1]) {
                    int temp;
                    temp=sums[j];
                    sums[j]=sums[j+1];
                    sums[j+1]=temp;
                }
            }
        }

二分查找

  public static int Binary(int[] arr, int key, int low, int high) {
        while (low <= high) {
            //取数组下标的中间数
            int mid = (low + high) / 2;
            //如果中间的数大于要查找的数
            if (arr[mid] > key) {
                //设置最后位比中间数小1个
                high = mid - 1;
            } else if (arr[mid] < key) {
                low = mid + 1;
            } else {
                //相等时返回该数下标
                return mid;
            }
        }
      //若没有该数返回-1
        return -1;
    }

心得体会:

    int[] nums = {2, 11, 33, 44, 55, 66, 277};
        //newNums = {2, 11, 44,55, 66, 277}
        int [] newNums = new int[nums.length-1];
        //newNums =Arrays.copyOf(nums, 2);  
        //copyOf方法内部new的一个数组赋值给newNums
        //此时的newNums长度为2若执行倒数第二行代码会报越界错误
        System.arraycopy(nums, 0, newNums, 0, 2);
        System.arraycopy(nums, 3, newNums, 2, 4);
        System.out.println(Arrays.toString(newNums));

作业:

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1