• Java数组的使用


    一、数组的动态初始化

    1、声明
    数据类型[] 数组名;或
    数据类型 数组名[];
    2、开辟空间
    数组名 = new 数据类型[长度];//长度必不可少
    3、手动赋值
    数组名[下标] = 值;
    4、使用(打印、运算、判断等)
    System.out.println(数组名[下标]);

    【注意事项】

    ① 数组的元素如果不赋值,也有默认值
    int 0
    double 0.0
    char u0000
    boolean false
    引用类型 null
    ② 访问数组的元素时,下标必须在0——长度-1 的范围内,否则报数组下标越界的异常
    ③ 数组的长度,可以通过 数组名.length表示,提高代码的维护性
    ④ 数组的赋值和使用,往往可以通过搭配for循环一起操作
    for(int i=0;i<数组名.length;i++){
      //每一个元素表示为:数组名[i]
    }

    二、数组的静态初始化

    步骤1:声明并初始化

    语法:数据类型[] 数组名 = new 数据类型[]{值,值,值};
    或 数据类型[] 数组名 = {值,值,值};

    int[] arr = {3,4,5,6,100};
    //int[] arr2 = new int[] {3,4,5,6,100};

    步骤2:使用

    for(int i=0;i<数组名.length;i++){
      //每一个元素表示为:数组名[i]
    }

    三、数组的复杂使用

    • 数组的赋值
    int[] arr1={1,2,3};
    int[] arr2=arr1;  // 引用型赋值,赋的是地址

    特点:

      数组属于引用类型,数组型数据是对象,数组中的每个元素相当于该对象的成员变量。

    基本类型的赋值,赋的是值(内容),其中一个变量对其更改不影响另外一个
    引用类型的赋值,赋的是地址,两个引用共同指向一个地址(对象),所以其中一个引用对其更改影响另外一个

    注意:如果希望引用类型赋值时,只赋内容,则可以使用循环赋值的方式,语法:

    int[] array2 = new int[array1.length];
    for(int i=0;i<array2.length;i++){
        array2[i] = array1[i];
    }
    • 数组的反转

    方式一:

    for(int i=0;i<arr.length/2;i++){
        //交换两个数 i vs arr.length-1-i
        int temp = arr[i];
        arr[i] = arr[arr.length-1-i];
        arr[arr.length-1-i] = temp;
    }

    方式二:

    //①创建一个新数组,长度=arr.length
    int[] newArr = new int[arr.length];
    //②逆序赋值
    /*
    i
    0    arr.length-1
    1    arr.length-2
    */
    for(int i=0,j=arr.length-1;i<arr.length;i++,j--){
        newArr[j]=arr[i];
    }
    //③将新数组的地址赋值给arr
    arr=newArr;

    四、数组的高级使用

    • 数组的添加
    //----------------具体的添加业务----------
    //①新建一个数组,长度=arr.length+1
    int[] newArr = new int[arr.length+1];
    
    //②依次为新数组的元素赋值
    for(int i=0;i<arr.length;i++){
    newArr[i] = arr[i];
    }
    //③将add赋值到新数组的空位上
    newArr[newArr.length-1] = add;
    
    //④将newArr的地址赋值给arr
    arr = newArr;
    System.out.println("添加成功!");
    • 数组的插入
    //----------------------具体的插入业务-----------
    
    //①创建新数组,长度=arr.length+1
    int[] newArr = new int[arr.length+1];
    
    //②循环赋值
    for(int i=0;i<arr.length;i++){
    newArr[i] = arr[i];
    
    }
    
    //③循环后移
    for(int i=newArr.length-1;i>index;i--){
    newArr[i]=newArr[i-1];
    
    }
    
    //④将新元素赋值到index位置上
    newArr[index] = add;
    
    //⑤将newArr的地址赋值给arr
    arr = newArr;
    System.out.println("插入成功!");

    五、二维数组

    二维数组其实就是 一维数组的组合,也就是一维数组的定义类型又为一维数组

    方式一:动态初始化

    1.声明

    数据类型[][] 数组名;或
    数据类型 数组名[][];
    数据类型[] 数组名[];

    int[][] num;
    int[] num[];
    int num[][];

    2.开辟空间

    情况1:固定列数
    数组名 = new 数据类型[行数][列数];
    情况2:不固定列数
    数组名 = new 数类型[行数][];

    3.赋值
    情况1:固定列数

    for(int i=0;i<nums.length;i++){//i:行数
        for(int j=0;j<nums[i].length;j++){//j:列数
            nums[i][j]=值;
        }
    }    

    情况2:不固定列数

    for(int i=0;i<nums.length;i++){//i:行数
        nums[i]=new 数据类型[长度];
        for(int j=0;j<nums[i].length;j++){//j:列数
            nums[i][j]=值;
        }
    } 

    4.使用(打印、求和、最值)

    for(int i=0;i<nums.length;i++){//i:行数
        for(int j=0;j<nums[i].length;j++){//j:列数
            System.out.print(nums[i][j]);
        }
    }

    方式二:静态初始化

    1.声明并初始化

    数据类型[][] 数组名={{},{},{}};

    数据类型[][] 数组名=new 数据类型[][]{{},{},{}};

    2.使用(打印、求和、最值)

    for(int i=0;i<nums.length;i++){//i:行数
        for(int j=0;j<nums[i].length;j++){//j:列数
            System.out.print(nums[i][j]);
        }
    }
  • 相关阅读:
    Linux服务器上监控网络带宽的18个常用命令
    centos性能监控系列三:监控工具atop详解
    centos性能监控系列二:Collectl初解
    centos查看硬件信息
    CentOS 6.4安装配置LAMP服务器(Apache+PHP5+MySQL)
    CentOS下如何完全卸载MySQL?卸载自带的mysql
    安全初始化MySql服务器
    用nginx-gridFS读取MongoDB的图片及文件(为什么你老是配不成功?)
    理解去中心化 稳定币 DAI
    如何开发一款以太坊(安卓)钱包系列2
  • 原文地址:https://www.cnblogs.com/MWCloud/p/11163244.html
Copyright © 2020-2023  润新知