文章目录
- 前言
- 一、一维数组
- 1.入门操作
- 2.何为null?
- 3.数组可以作为函数的参数
- 4.数组可以作为函数的返回值
- 二、二维数组
- 1.基础操作
- 2.不规则的二维数组
- 总结
前言
在Java语言当中,数组是一种基本的数据结构,它存储了固定大小的同类型元素的集合。数组中的每个数据项都被称为元素,并且可以通过索引(一个非负整数)来访问。数组的索引从0开始,这意味着第一个元素位于索引0处,第二个元素位于索引1处,依此类推。
提示:以下是本篇文章正文内容,下面案例可供参考
一、一维数组
1.入门操作
1.声明:在使用数组之前,必须先声明它。声明数组时需要指定数组的类型以及数组的名字。
int[] array1; // 声明一个整型数组
String[] array2; // 壍明一个字符串数组
2.创建:声明数组后,还需要创建数组实例并分配内存空间。
int[] array1=new int [5]; // 创建一个含有5个整数的数组
int[3] array2 = new String[3]; // 创建一个含有3个字符串的数组
3.初始化:可以在创建数组的同时进行初始化
int[] array = {1, 2, 3, 4, 5}; // 直接初始化一个整型数组
String[] daysOfWeek = {"Monday", "Tuesday", "Wednesday"}; // 初始化一个字符串数组
4.访问:通过索引(类似于C语言数组的下标)来访问或修改数组中的元素。
System.out.println(array1[0]); // 输出第一个元素
array1[0] = 10; // 修改第一个元素为10
5.长度:可以使用(数组名.length)属性获取数组的长度(元素的数量)。
int length = array1.length; // 获取array1数组的长度
6.遍历:1.通常使用循环来遍历数组的所有元素。
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i]);
}
// 或者使用增强for循环(for each)
for (int i : array1) {
System.out.println(i);
}
2.我们可以通过Array.toString(数组名)来直接输出数组中的各个元素
例如:
输出:
我觉得Java中,还是相对于C语言更加的遍历,这样我们就不用在使用for循环去遍历。
2.何为null?
在Java中,null表示的是空引用,也就是一个不指向对象的引用.
null 的作用类似于 C 语言中的 NULL (空指针), 都是表示一个无效的内存位置. 因此不能对这个内存进行任何读写操作. 一旦尝试读写, 就会抛出 NullPointerException.
例如:
接下来我们给个例子更容易得理解null,和Java中数组创建的位置和对象的位置。
例如:
我们最后输出会是什么呢?
是下面这样吗?:
1,6,3,4,5
1,2,6,4,5
我们输出一下:
显然并不是,我们利用图解来说明一下:
3.数组可以作为函数的参数
在Java中,数组可以作为函数(方法)的参数传递。当数组作为参数时,实际上是将数组的引用传递给方法。这意味着方法内部对数组元素的任何修改都会影响到原始数组。
1.基本语法
方法声明:在方法声明中指定数组类型。
public void methodName(int[] array) {
// 方法体
}
调用方法:使用数组名作为实参来调用方法。
int[] array = {1, 2, 3, 4, 5};
methodName(array);
2.数组引用传递
①在Java中,数组是对象,因此它们是通过引用来传递的。
②当你将数组传递给一个方法时,你实际上是在传递数组的引用(即指向数组在内存中的地址)。
③如果方法内部修改了数组的内容,那么这些修改会在方法外部可见。
4.数组可以作为函数的返回值
在Java中,数组不仅可以作为方法的参数传递,也可以作为方法的返回值。当一个方法返回一个数组时,实际上是返回了该数组的引用。这意味着调用者可以访问到整个数组,并且能够修改数组中的元素(如果这些元素是可变类型)
1.基本语法
方法声明:在方法声明中指定返回类型为数组。
public int[] methodName() {
// 方法体
}
返回数组:在方法体内创建或处理数组,并使用 return 语句返回它。
public int[] methodName() {
...
int[] array = {1,2,3,4,5};
return array;
}
2.注意事项
①不要返回局部变量数组:如果你在一个方法内部创建了一个局部数组并且没有将其赋值给任何类成员变量或静态变量,那么这个数组在方法执行完毕后会被垃圾回收。因此,确保返回的数组是有生命周期保证的。
②数组引用:返回数组实际上是返回数组的引用,所以调用者可以直接操作这个数组的内容。
③空数组:有时你可能需要返回一个空数组来表示没有结果的情况,这比返回 null 更好,因为它避免了调用者需要检查 null 的情况。
3.实际应用
我们给定一个数组要将其所有元素重置为0:
输出:
二、二维数组
在Java中,二维数组可以被看作是一个“数组的数组”。它是一种特殊的数据结构,其中每个元素本身也是一个数组。二维数组通常用于表示表格、矩阵或网格等数据结构。
1.基础操作
声明:首先你需要声明一个二维数组。
int[][] array1; // 声明一个整型二维数组
String[][] array2; // 声明一个字符串二维数组
创建:然后你需要为这个二维数组分配内存空间
array1 = new int[3][4]; // 创建一个3行4列的整型二维数组
array2 = new String[2][2]; // 创建一个2行2列的字符串二维数组
初始化:你也可以在声明的同时进行初始化。
int[][] array1 = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
}; // 初始化一个3x3的二维数组
String[][] array2 = {
{"aaa", "bbb"},
{"ccc", "ddd"}
}; // 初始化一个2x2的二维字符串数组
遍历:可以使用嵌套循环来遍历二维数组的所有元素。
for (int i = 0; i < array1.length; i++) { // 外层循环遍历行
for (int j = 0; j < array1[i].length; j++) { // 内层循环遍历列
System.out.print(array1[i][j] + " ");
}
System.out.println(); // 换行
}
或者使用for each:
for (int[] row : array1) {
//row表示行
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
2.不规则的二维数组
二维数组中的每一行可以有不同的列数,这样的数组称为不规则二维数组。
例如:
int[][] array1 = {
{1, 2, 3},
{4, 5},
{6, 7, 8, 9}
};
在遍历不规则二维数组时,需要注意每一行的长度可能不同。
for (int i = 0; i < array1.length; i++) {
for (int j = 0; j < array1[i].length; j++) {
System.out.print(array1[i][j] + " ");
}
System.out.println();
}
注意事项:
① 确保在访问元素时不会超出边界,否则会抛出 ArrayIndexOutOfBoundsException。
②在处理不规则二维数组时,要特别注意每行的实际长度。
总结
非常感谢大家阅读完这篇博客。希望这篇文章能够为您带来一些有价值的信息和启示。在未来的日子里,我们将继续探索更多关于博客技术的精彩内容,敬请期待。如果您有任何问题或建议,欢迎在评论区留言,我们一起交流学习。