根据问题输入增加数组的大小

时间:2013-04-25 18:18:38

标签: java arrays java.util.scanner multidimensional-array

我写了一个有二维数组的类。该类将根据用户输入和大小打印出数组的编号。例如,用户输入将类似于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]);

         }


        }


    }


}

2 个答案:

答案 0 :(得分: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的大小。

示例

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;在这种情况下,您只需将ArrayList作为原始ArrayList的通用类型。请记住,您不能将基元用作generic types,因此对于int,您需要使用Integer

更多信息

注意List接口是可用的,Vector / ArrayList / LinkedList / etc都可以实现;见http://docs.oracle.com/javase/6/docs/api/java/util/List.html

答案 1 :(得分:1)

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