深入理解Java数组:定义、初始化及常见错误解析
目录

1.数组的基本概念
数组是指相关变量的集合。在Java中,数组是引用数据类型,因此必然涉及内存。数组的定义格式包括:
从上面可以看出,定义格式和实例化对象的思路基本相同,eg:
int data[] = new int[3];
data[0] = 10;
data[1] = 20;
data[2] = 30;
上述操作属于数组的动态初始化。其特点是数组开辟空间后,每个数组元素的内容就是对应数据类型的默认值。
通过 array[index] 方法访问数组。索引的范围是:0~length-1;如果超出这个范围,在程序允许的情况下会出现ArrayIndexOutofBoundsException(数组索引超出绑定异常,数组越界)
[数组输出]:只需使用for循环即可。关键是使用数组name.length来获取数组的长度。我不会通过代码示例详细介绍。
2. 数组参考分析
引用数据类型的分析基本相同,过程与对象相同。唯一的区别是普通类对象保存属性并使用属性名进行操作,而数组保存内容并使用索引进行操作。
【示例】:数组的引用操作
int data[] = new int[3];
data[0] = 10;
data[1] = 20;
data[2] = 30;
int temp[] = data;
temp[0]=100;
for(int i=0;i
3.数组的静态初始化
上述数组动态初始化的特点是先打开数组内容空间,然后再赋值内容。如果想在数组打开后直接有清晰的内容,可以使用数组的静态初始化:
[示例]:数组的静态初始化
int data[] = new int[] {10,20,30};
【示例】:判断数组中是否存在某个数字
int data[] = new int[] {10,20,30};
int x =10;
boolean flag = false;
for(int i=0;i
然而,上述方法的性能并不好。它需要遍历并判断数组中的每个元素,直到找到为止。这就涉及到算法问题。有一种搜索算法称为二分搜索法,但其使用的前提是数组中的数据必须是有序的。二分查找法的原理不再赘述。
4. 二维数组
之前使用的数组只有一个索引下标,二维数组有行和列。要确认一条数据,必须有行索引和列索引。对于二维数组的定义:
{数据,,,},{数据,,,},...
};
【例子】:观察二维数组的使用
int data[][] = new int[][] {{10,20,30},{11,321,31}};
for(int x=0;x
【示例】:实现二维数组转置
int data[][] = new int[][] {{1,2,3},{4,5,6},{7,8,9}};
for(int x=0;x
以上对实际开发帮助不大,仅用于训练逻辑思维。
5.数组相关操作方法
具体应用不再赘述。
6. 对象数组
对象数组意味着对象存储在数组中。对象数组的定义格式为:
【示例】:动态初始化定义数组
Person per[] =new Person[3];
per[0] =new Person("张三",10);
per[1] =new Person("李四",20);
per[2] =new Person("王五",30);
[示例]:静态初始化定义数组
Person per1 =new Person("张三",10);
Person per2 =new Person("李四",20);
Person per3 =new Person("王五",30);
Person per[] =new Person[]{per1,per2,per3};
或者
Person per[] =new Person[]{
new Person("张三",10),
new Person("李四",20),
new Person("王五",30)};
创建于202003281600,已存档
————————————————————————————————