【数组】数据结构,数组详细介绍

数组是什么

数组,是有序的元素序列,用于储存多个相同类型数据的集合,数组是在程序设计中,为了处理方便, 把具有相同类型的若干zhidao元素按无序的形式组织起来的一种形式

数组的声明方式

数组有两种声明方式,一种是先声明大小,随后再进行赋值

		int[] nums1 = new int[3];
		nums1[0] = 0;
		nums1[1] = 1;
		nums1[2] = 2;

关于赋值,如果只进行声明,而不进行赋值,那么数组默认的初值就是0


另一种是直接进行赋值元素

		int[] nums2 = {0, 1, 2};

数组的特点

  1. 数组是 线性表,它在内存中的存储占用的是一块儿 连续的内存

  2. 数组的长度 不可变 ,如果想改变数组的长度,只能新声明另外一个数组,重新进行赋值

  3. 数组修改元素的 时间复杂度O(1),可以直接通过下标进行某个元素的修改

  4. 数组是 引用型 变量,在传递数组变量时其实传递的是 引用

数组声明的内存分析

下面的这段程序的打印结果就是0 1 8

		int[] nums2 = {0, 1, 2};
		int[] nums22 = nums2;

		nums22[2] = 8;
		// 引用型变量,打印结果:0 1 8
		for (int i = 0; i < nums2.length; i++) {
			System.out.print(nums2[i] + "  ");
		}

在这里插入图片描述
如果需要对数组进行复制,可以使用数组的clone方法,这样就会在堆内存中开辟一块新的空间来进行存储新的数组

		int[] nums222 =nums2.clone(); 

在堆内存中会重新开辟一块儿内存,nums222会指向新的数组
在这里插入图片描述

二维数组

一般来说,我们使用二维数组来表示矩阵,这两者表示形式很像,二维数组是如下方式声明的:

		int[][] nums3 = {{1,2,3},{4,5,6},{7,8,9}};
		int[][] nums4 = new int[3][2];
		int[][] nums5 = new int[3][];

二维数组或者多维数组的声明,必须要声明当前的数组的长度

我们一般最多使用到三维数组,三维数组以上的适用场景就比较少了,所以就不再详细说了

容易出现的错误

最容易出现的错误绝对是越界了,我们很容易犯这种错误,在访问数组时访问到数组的边界外,这个时候就会报出 ArrayIndexOutOfBoundsException

		int[] nums2 = {0, 1, 2};
		// 越界异常
		System.out.println(nums2[3]);

抛出的异常如下:

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 3
at com.banana.array.Test01.main(Test01.java:31)

这个意思就是我们访问的索引超出了数组本身的边界,就要考虑查看索引是否出现问题

总结

千里之行,始于足下,好的开始,已经成功了一半,我们一起加油把,奥里给!!!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Geek-Banana

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值