Java输入一个二维数组未知大小
在Java中,我们经常需要处理二维数组。但是,有时我们可能需要从用户那里输入一个未知大小的二维数组。本文将介绍如何实现这个功能。
1. 问题描述
我们希望用户能够输入一个二维数组,但是我们事先并不知道它的确切大小。因此,我们需要一个机制来动态地确定数组的大小。
2. 解决方案
Java提供了多种方式来解决这个问题。下面将介绍两种常用的方法。
方法1:使用ArrayList<ArrayList<Integer>>
我们可以使用ArrayList
类来代替数组,并使用ArrayList
的嵌套形式来表示二维数组。
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建一个ArrayList来存储二维数组
ArrayList<ArrayList<Integer>> arr = new ArrayList<>();
// 获取用户输入的行数和列数
Scanner scanner = new Scanner(System.in);
System.out.print("请输入行数:");
int rows = scanner.nextInt();
System.out.print("请输入列数:");
int cols = scanner.nextInt();
// 根据行数和列数创建二维数组
for (int i = 0; i < rows; i++) {
ArrayList<Integer> row = new ArrayList<>();
for (int j = 0; j < cols; j++) {
System.out.print("请输入第" + (i + 1) + "行,第" + (j + 1) + "列的元素:");
int element = scanner.nextInt();
row.add(element);
}
arr.add(row);
}
// 打印二维数组
System.out.println("输入的二维数组为:");
for (ArrayList<Integer> row : arr) {
for (int element : row) {
System.out.print(element + " ");
}
System.out.println();
}
}
}
方法2:使用二维动态数组
我们可以使用二维动态数组来表示二维数组。首先,我们需要确定数组的行数和列数,然后使用new
关键字创建二维数组。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 获取用户输入的行数和列数
Scanner scanner = new Scanner(System.in);
System.out.print("请输入行数:");
int rows = scanner.nextInt();
System.out.print("请输入列数:");
int cols = scanner.nextInt();
// 创建二维数组
int[][] arr = new int[rows][cols];
// 获取用户输入的数组元素
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
System.out.print("请输入第" + (i + 1) + "行,第" + (j + 1) + "列的元素:");
arr[i][j] = scanner.nextInt();
}
}
// 打印二维数组
System.out.println("输入的二维数组为:");
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
3. 结论
Java提供了多种方式来输入一个未知大小的二维数组,其中使用ArrayList
的嵌套形式和使用二维动态数组是最常用的方法。
无论使用哪种方法,都需要先确定数组的行数和列数,然后根据用户的输入来动态地确定数组的大小和元素。
通过本文的介绍,你应该可以轻松地处理输入一个未知大小的二维数组的问题了。
pie
title 二维数组元素分布
"元素1" : 30
"元素2" : 20
"元素3" : 15
"元素4" : 10
"元素5" : 25
希望本文对您有所帮助,谢谢阅读!