【java基础】数组

有时候,不是因为你没有能力,也不是因为你缺少勇气,只是因为你付出的努力还太少,所以,成功便不会走向你。而你所需要做的,就是坚定你的梦想,你的目标,你的未来,然后以不达目的誓不罢休的那股劲,去付出你的努力,成功就会慢慢向你靠近。

导读:本篇文章讲解 【java基础】数组,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

基础说明

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

数组的声明和初始化

数组声明的形式有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);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/146256.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!