在Java中,二维数组用于存储表格或矩阵形式的数据,其基本结构如下:
```java
int[][] arrayName = new int[rows][columns];
其中`rows`表示数组的行数,`columns`表示数组的列数。
创建二维数组
创建二维数组的基本语法是:
```java
int[][] arrayName = new int[rows][columns];
初始化二维数组
1. 声明时直接初始化:
```java
int[][] arrayName = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
2. 声明后逐个初始化:
```java
int[][] arrayName = new int[];
arrayName = new int[]{1, 2, 3};
arrayName = new int[]{4, 5, 6};
arrayName = new int[]{7, 8, 9};
3. 使用循环进行初始化:
```java
int[][] arrayName = new int;
for (int i = 0; i < arrayName.length; i++) {
for (int j = 0; j < arrayName[i].length; j++) {
arrayName[i][j] = i * j;
}
}
访问二维数组元素
访问二维数组中的元素使用以下语法:
```java
int value = arrayName[rowIndex][columnIndex];
修改二维数组元素
修改二维数组中的元素同样使用以下语法:
```java
arrayName[rowIndex][columnIndex] = newValue;
存储二维数组到文件
要将二维数组存储到文件中,可以使用`ObjectOutputStream`和`ObjectInputStream`进行序列化和反序列化,或者使用`PrintStream`将数组转换为文本格式存储。
序列化到文件
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
int[][] array = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
try {
FileOutputStream fileOut = new FileOutputStream("array.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(array);
out.close();
fileOut.close();
System.out.println("Serialized data is saved in array.ser");
} catch (IOException i) {
i.printStackTrace();
}
}
}
从文件反序列化
```java
import java.io.*;
public class Main {
public static void main(String[] args) {
int[][] array = null;
try {
FileInputStream fileIn = new FileInputStream("array.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
array = (int[][]) in.readObject();
in.close();
fileIn.close();
} catch (IOException i) {
i.printStackTrace();
return;
} catch (ClassNotFoundException c) {
System.out.println("Array class not found");
c.printStackTrace();
return;
}
// 打印反序列化后的二维数组
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.print(array[i][j] + " ");
}
System.out.println();
}
}
}
以上代码展示了如何在Java中创建、初始化、访问和修改二维数组,以及如何将二维数组序列化到文件并从文件反序列化