2010-10-02 33 views
0

我有这样的代码:的Java:改变的String [] []动态

newArray = new String[][]{{"Me","123"},{"You","321"},{"He","221"}}; 

而且我要动态地做到这一点。 添加更多元素,就像它。

我该怎么做? PS:不使用Vector,只使用String[][];不使用Vector,只使用String[][];不使用Vector,只使用String[][];不使用Vector,仅使用String[][];

+0

在我看来,发布这个人的人必须已经开始用Python中动态数组构建的语言编程。 Tangens的回答是完美的。有很多许多类型的集合允许动态修改。 – 2010-10-02 18:25:09

+0

我会推荐他学习更多关于泛型的知识,也许。如果我从Python到java(而不是反过来),仿制药开始看起来很奇怪。 – krs1 2010-10-02 18:36:38

回答

8

您不能更改数组的大小。您必须创建一个新阵列并将旧阵列中的所有内容复制到新阵列。

这就是为什么它更容易使用Java集合类,如ArrayListHashSet,...

0

您不能更改数组的大小。我觉得你有一些选择:

  1. 使用List<List<String>>存储字符串列表的列表
  2. 使用Map<String,String>如果你存储键/值对

Vector往往不会这些日子,顺便说一句。每个方法调用都会同步一个Vector,因此性能会受到影响(现代虚拟机的性能可以忽略不计)

0

Java没有像其他语言一样调整数组大小的功能。


你不会看到一个String数组和ArrayList<String>javadoc)之间的区别,除非你被特别要求这样做(像功课)

有很多方法,你可以声明一个巨大的阵所以你不要空间不足但我强烈建议ArrayList如果您需要动态更改大小。作为奖励,ArrayList提供了一些不可能(直接)使用数组的可能性。

0

如果可以在使用数组之前计算数组的大小,您可以使用数组脱身。在你的例子中,我们似乎只需要知道第一个数组的大小。因此,您可以对保存多少条记录施加限制,或者您可以查询用户以了解需要保存多少条记录或类似的内容。

但是,使用Collections更容易。