Java学习第五天_Java基础学习第五天

数组

数组用于存储相同类型的一组数据,它是一种数据结构,也是Java中的一种类型。

  • 一个数组有多个数据(元素)
  • 一个数组里面的元素都是相同类型
  • 数组中的元素用序号(下标,从0开始)来访问
  • 数组一旦初始化后,长度不能改变

定义数组

数组定义跟变量定义类似,就是在变量类型后面加一对方括号

  • 只定义数组,没有分配内存空间
  • 没有长度

(注意: 数组可以按这样的方式定义,但是不推荐 int arrXxx[] )

//数组定义跟变量定义类似,就是在变量类型后面加一对方括号
int[] arrInt;
char[] arrChar;
boolean[] arrBoolean;
String[] arrStr;

初始化数组

指定长度,分配内存空间,每个元素给初始化的值

  • new 类型[长度]
  • new 类型[]{ }
  • 类型[] 数组变量 = { }

如果数组初始化时没有赋值,按下面的规则给数组元素赋默认值:

数据类型默认值
byte, short, int ,long0
float, double0.0
char‘\u0000’ 不可见字符
booleanfalse
引用类型(类, 接口, 数组)null
//        数组的初始化
        arrInt = new int[5]; //int类型数组默认初始值是0
        arrChar = new char[]{'a', 'b', 'c'}; //初始化的同时赋值,
        String[] arrStr2 = {"Tom", "Jack"};  //在数组定义时,直接用大括号赋值和初始化
        float[] arrFloat = {3.14F, 2.56F, 4.22F};

使用数组

用数组变量名加[], 中括号里面写上下标,就可以读写数组的元素。

  • 下标不能越界,否则要报(抛出)异常
  • 数组长度可以通过length属性获得
//        数组使用
//        变量名[下标]  这样读取指定元素的值
        System.out.println(arrInt[0]);
        System.out.println(arrStr2[1]);
        System.out.println(arrFloat[2]);

//        数组元素赋值
        arrInt[0] = 888;
        arrStr2[1] = "重新赋值";
        arrFloat[2] = 8.88F;

        System.out.println(arrInt[0]);
        System.out.println(arrStr2[1]);
        System.out.println(arrFloat[2]);

//        访问数组元素时,如果下标超出范围,抛出异常ArrayIndexOutOfBoundsException(数组下标越界异常)
        arrInt[5] = 100;

//      数组变量有一个lenght的属性,就是数组长度
        System.out.println(arrInt.length);

用循环遍历数组

  • for循环
  • foreach

​ for(类型 变量名 : 数组名){

​ //变量的值就是数组里元素

​ }

    System.out.println("=========顺序遍历数组=======");
        for (int i = 0; i < arrStr2.length; i++) {
            System.out.println(arrStr2[i]);
        }

        System.out.println("=========倒序遍历数组=========");
        for (int i = arrStr2.length - 1; i >= 0; i--) {
            System.out.println(arrStr2[i]);
        }

        System.out.println("========遍历数组,给数组元素赋值=========");
        for (int i = 0; i < arrInt.length; i++) {
            arrInt[i] = i;
        }
        System.out.println(arrInt[3]);

        System.out.println("========foreach循环遍历数组========");
//        foreach, 增强的for循环
        for(int i : arrInt){
            System.out.println(i);
           
        }

二维数组

        int[][] arrInt1 = new int[5][3]; //初始化指定外层数组和内层数组的长度
        int[][] arrInt2 = new int[5][];  //初始化只指定外层长度
        //初始化的时候赋值,内层数组长度可以不一样
        int[][] arrInt3 = new int[][]{{1,2}, {3,5,7}, {10, 20, 40, 50}}; 
    

	//二维数组
        int[][] arrInt = {{1, 2, 3},
                            {4, 5, 6},
                            {7, 8, 9}};

        System.out.println(arrInt[0][1]);
        System.out.println(arrInt[1][1]);
        System.out.println(arrInt[2][0]);

//        用循环嵌套遍历二维数组
        for (int i = 0; i < arrInt.length; i++) {
            for (int j = 0; j < arrInt[i].length; j++) {
                System.out.println(arrInt[i][j]);
            }
        }

Arrays类的使用

        String[] arrStr = {"abc", "123", "456", "中文"};
//      在数组里搜索一个元素,搜到返回元素的下标;没有搜到返回负数
        int i = Arrays.binarySearch(arrStr, "中文");
        System.out.println(i);

//        复制一个新数组,第一个参数是原数组,第二个参数是新数组的长度
        String[] arrNew = Arrays.copyOf(arrStr, 5);
        System.out.println(arrNew.length);
        System.out.println(arrNew[4]);

//        把数组转为字符串
        System.out.println(Arrays.toString(arrStr));

//        对数组进行排序
        Arrays.sort(arrStr);
        System.out.println(Arrays.toString(arrStr));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值