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

希望本文对您有所帮助,谢谢阅读!