1维数组 & 2维数组

一.1维数组

概念:

1.存储多个数据(一组数据的容器) ​ 2.元素:数组中数据 ​ 3.下标/索引:元素的编号,从0开始

数组的声明:

数据类型 [ ] 数组名;

数组的初始化:

1.静态初始化:初始化时,数据由程序员给定,长度由系统自动分配 ​ 2.动态初始化:初始化时,长度由程序员给定,数据由系统分配默认值

    //动态初始化
    String[] names = new String[5];
    或者
    String[] names;
    names = new String[5];

整数类型默认:0 ​ 浮点类型默认:0.0 ​ 字符类型默认:' ' ​ 布尔类型默认:false ​ 引用类型默认:null(空)

注意:

1.数组是引用数据类型 ​ 2.数组可以存储多个数据(这个是和变量最大的不同) ​ 3.数组一旦初始化后,长度不可以改变

数组的排序:冒泡排序

口诀:

N个数字来排队 ​ 两两相比,小靠前 ​ 外层循环N-1 ​ 内层循环N-1-i

 int[] is = {45,69,32,28,52,18};
 for(int i = 0;i<is.length-1;i++){//冒泡排序
        for(int j = 0;j<is.length-1-i;j++){
            if(is[j] > is[j+1]){
                int temp = is[j];
                is[j] = is[j+1];
                is[j+1] = temp;
for(int num : is){//遍历输出
            System.out.println(num);

数组的扩容:

含义:新建一个数组,给予新的长度,将原数组数据拷贝过去即可。

    //原数组   
    String[] names = {"北条麻衣","易烊千玺","肖战","王一博"};
    //新数组
    String[] newNames = new String[names.length*2];
    //将原数组中的数据设置到新数组中
    for(int i = 0;i<names.length;i++){
        newNames[i] = names[i];
    }
    //将新数组的地址赋值给原数组的引用
    names = newNames;
    //遍历原数组
    for(String str : names){
        System.out.println(str);

数组的删除:

太过简单,此处不做讲解

Arrays工具类:

含义:Java提供的专门操作数组的工具类

工具类:该类里的所有方法都是静态的

API:Java类的使用说明书

        int[] is = {45,69,32,28,52,18};
        
        //排序(18,28,32,45,52,69)
        Arrays.sort(is);
        
        //查找(返回值:如果key在数组中,就返回数组的下标;否则返回 -插入点-1)
        int index = Arrays.binarySearch(is,56);
        System.out.println("下标为:" + index);
        
        //替换
        //Arrays.fill(is,888);
        
        //替换局部:从开始下标处(包含)替换到结束下标处(不包含)
        //Arrays.fill(is,1,4,666);
        
        //将数组转换为字符串
        String str = Arrays.toString(is);
        System.out.println(str);

二.2维数组

含义:

二维数组中包含了多个一维数组

数组的声明:

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

数组的初始化:

1.静态初始化:数据由程序员指定,长度由系统自动分配 ​ 2.动态初始化:长度由程序员指定,数据由系统赋默认值 ​ 整数类型:0 ​ 浮点类型:0.0 ​ 字符类型:' ' ​ 布尔类型:false ​ 引用类型:null

        //通关下标获取元素
        String str = names[0][1];
        System.out.println("通关下标获取元素:" + str);
        
        //获取长度
        System.out.println("获取二维数组中一维数组的个数:" +          names.length);//2
        System.out.println("获取二维数组中第一个一维数组元素的个数:" + names[0].length);//3
        System.out.println("获取二维数组中第二个一维数组元素的个数:" + names[1].length);//4
        
        System.out.println("--------------");
        
        //遍历思路:循环取出一维数组,再循环取出一维数组的元素
        
        //遍历 -- for
        for (int i = 0; i < names.length; i++) {
            for (int j = 0; j < names[i].length; j++) {
                System.out.println(names[i][j]);
            }
        }
        
        System.out.println("--------------");
        
        //遍历 -- foreach
        for (String[] ss : names) {
            for (String s : ss) {
                System.out.println(s);
            }
        }
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值