-1

我写了一个有二维数组的类。该类将根据用户输入和大小打印出数组的数字。例如,用户输入将类似于 2 3 145464。这意味着数组大小为 2 行 3 列,它应该将数组中的数字打印为

145

464

我无法弄清楚如何在不最初声明大小的情况下更改数组的大小。

这是我写的

 import java.util.Scanner;
 public class Assignment7 
 {
public static void main(String[] args) 

    {




    Scanner scan = new Scanner(System.in);



    int [][] nums = new int[scan.nextInt()][scan.nextInt()];


    System.out.print("Enter numbers of an array  ");

    for (int i = 0; i < nums.length; ++i)
        {

        for (int j = 0; j < nums.length; ++j)

            {

            nums[i][j] = scan.nextInt();

            }

        }


    for (int i = 0; i < nums.length; ++i)

        {

            System.out.print("\n");

        for (int j = 0; j < nums.length; ++j)

        {

            System.out.print(nums[i][j]);

         }


        }


    }


}
4

2 回答 2

2

看看如何使用 ArrayList,请参阅http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html或 Vector,如果您需要同步列表,请参阅http://docs。 oracle.com/javase/6/docs/api/java/util/Vector.html

我无法弄清楚如何在不最初声明大小的情况下更改数组的大小。

这个通用类上有一些方法可以让你随意添加/删除元素。此外,您不必事先声明数组列表的大小。

例子

ArrayList<String> listOfString = new ArrayList<String>();
listOfString.add("foo");
listOfString.add("bar");

ArrayList<Integer> listOfInts = new ArrayList<Integer>();
listOfInts.add(1);
listOfInts.add(2);

有一些方法可以让您返回大小以及能够迭代以执行所需的操作。如果您想了解更多信息,请参阅 javadocs!

好像您正在使用multidimensional array; 在这种情况下,您可以简单地将 aArrayList作为原始ArrayList. 请记住,您不能像使用原语一样generic types,因此对于int,您需要使用Integer

更多信息

需要注意的是 List 接口可用 Vector/ArrayList/LinkedList/etc 实现;请参阅http://docs.oracle.com/javase/6/docs/api/java/util/List.html

于 2013-04-25T18:20:46.137 回答
1

您最好使用列表来存档它,因为它们不必在初始化时保持固定大小。列表更易于使用,并且具有更多功能。您可以动态删除项目而无需重新排序以避免出现空格等。

于 2013-04-25T18:20:37.947 回答