【java基础】数组
  TEZNKK3IfmPf 2023年11月12日 40 0

基础说明

数组就是是存储同一种类型的集合,我们可以定义任何类型的数组

数组的声明和初始化

数组声明的形式有2种 int[] a; int a[],我们一般使用前一种

int[] a;
int b[];

数组是通过new来进行初始化的

		// 数组的初始化使用 new ,并且指定数组大小
        int[] a = new int[10];
        // 上面语句就创建了大小为10的数组,里面可以存放10个int类型的值

上面的语句初始化之后并没有赋值,每个索引位置的值都默认为0。
还有一种更简单初始化数组的方式如下

        // 数组还可以在初始化的时候直接赋值,使用{},
        // 编译器会推断出数组的大小,下面就创建了b数组,大小为5
        int[] b = {
     
       1,2,3,4,5};

上面这样初始化数组,数组每个位置的值都会和{}里面的值对应。
这里需要说明一点,数组初始化后具有默认值,数字类型默认为0,对象类型默认就是null,boolean类型默认是false

数组访问

数组访问是通过下标,从0开始,数组的长度-1结束

System.out.println(b[0]);

访问数组所有元素我们可以使用fori,也可以使用for each,如果要获取下标,那么就只能使用fori方式了

        // 我们使用数组.length可以获取到数组的长度
        for (int i = 0; i < b.length; i++) {
     
       
            System.out.println(b[i]);
        }
        for (int num : b) {
     
       
            System.out.println(num);
        }

多维数组和不规则数组

前面我们说的是一维数组,这里来介绍一下多维数组。我们先使用二维数组来举例,二维数组就相当于是有n个一维数组,如果是3*4的二维数组,那么就相当于是有3个一维的,大小为4的数组,总元素为12个。下面的代码就创建了一个二维数组

        // 多维数组,一维就是[],二维就是[][],三维就是[][][],类推即可,
        // 二维数组可以理解为有n个一维数组,三维数组可以理解为有n个二维数组,类推即可
        // 二维数组一般用行列来表示
        // 下面创建了一个4*3的数组
        int[][] x = new int[4][3];

        // 也可以使用{}进行初始化
        /* 1,2,3,4 5,6,7,8 9,10,11,12 */
        int[][] nums = {
     
       
                {
     
       1, 2, 3, 4},
                {
     
       5, 6, 7, 8},
                {
     
       9, 10, 11, 12}
        };

说完了多维数组,现在来说一下不规则数组,还是以二维数组为例,我们知道二维数组相当于n个一维数组,当然,java并没有要求所有一维数组长度是一样的,于是我们就可以在创建二维数组的时候不指定一维数组的长度,而是动态指定不一样的长度,下面就是一个例子

        // 不规则数组,上面的二维数组每行都是固定大小的,我们再创建数组的时候也可以不进行初始化大小
        // 下面就创建了一个大小为5*?的数组,
        // 我们每行的大小可以各不相同,只需要每行都指向一个一维数组即可
        int[][] nums = new int[5][];
        for (int i = 0; i < nums.length; i++) {
     
       
            nums[i] = new int[i];
        }

上面的代码我们就创建了不规则的数组,下面我们来输出每一个一维数组的长度看一下

        // 输出每一个一维数组长度
        for (int i = 0; i < nums.length; i++) {
     
       
            System.out.println(nums[i].length);
        }

输出如下

0
1
2
3
4

不规则数组使用不多,一般都是规则的

数组常见操作

  • 输出数组的所有元素
        // 输出数组,我们直接输出数组并不会输入数组的值,而是会输出该数组的地址
        System.out.println(b);
        
        // 想要输出数组的值,我们可以使用Arrays.toString将数组转换成为字符串再输出
        // 对于多维数组,我们需要使用Arrays.deepToString
        System.out.println(Arrays.toString(b));
  • 数组排序
		// 数组排序,我们使用Arrays.sort就可以进行排序,默认(小->大)
        Arrays.sort(a);
  • 数组拷贝
        // 数组拷贝,如果变量直接赋值,那么2个变量会引用同一个数组,也曾为浅拷贝,2者共享同一个数组
        // 如果需要深拷贝,可以使用Arrays.copyOf的方法,深拷贝就会创建一个新的相同的对象
        // 传入要拷贝的数组,第二个参数为新数组长度,如果小于传入数组的长度会进行截断,大于就会进行填充默认值
        int[] copyA = Arrays.copyOf(a, a.length);
  • 填充数组
        // 填充数组,将数组里面的每个值都设置为val
        Arrays.fill(a, 100);
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月12日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   24天前   51   0   0 java
TEZNKK3IfmPf