我写了一个有二维数组的类。该类将根据用户输入和大小打印出数组的编号。例如,用户输入将类似于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]);
}
}
}
}
答案 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进行存档,因为它们不必保持初始化的固定大小。列表更易于使用,并具有更多功能。您可以动态删除项目,而无需重新排序,以避免空格等。