【问题标题】:Java: Change String[][] DynamicallyJava:动态更改字符串 [] []
【发布时间】:2010-10-02 18:18:50
【问题描述】:

我有这个代码:

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

我想动态地做到这一点。 添加更多元素,诸如此类。

我该怎么做?

PS:不用Vector,只用String[][]

【问题讨论】:

  • 在我看来,发布此内容的人一定是开始使用一种内置动态数组的语言(如 python)开始编程的。 Tangens的答案是完美的。有许多允许动态修改的集合类型。
  • 我会建议他多学习一些关于泛型的知识,也许吧。如果我是从 python 到 java(而不是相反),泛型一开始看起来真的很奇怪。

标签: java arrays string vector


【解决方案1】:

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

这就是为什么使用 ArrayListHashSet、...等 java 集合类要容易得多的原因

【讨论】:

    【解决方案2】:

    您无法更改数组的大小。我认为您有一些选择:

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

    Vector 这些天往往不被使用,顺便说一句。 Vector 在每个方法调用上都是同步的,因此会影响性能(现在使用现代 VM 可以忽略不计)

    【讨论】:

      【解决方案3】:

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

      但是
      你不会看到字符串数组和 ArrayList<String> (javadoc) 之间的区别,除非你特别需要这样做(比如在家庭作业中)

      您可以通过多种方式声明一个巨大的数组,以免空间不足,但如果您需要动态更改大小,我强烈推荐ArrayList。作为奖励,ArrayList 提供了一些数组无法(直接)实现的可能性。

      【讨论】:

        【解决方案4】:

        如果可以在使用数组之前计算出数组的大小,则可以不使用数组。在您的示例中,我们似乎只需要知道第一个数组的大小。因此,您可以对可以保存的记录数量施加一些限制,或者您可以查询用户以了解它需要保存多少记录或类似的东西。

        但同样,使用集合更容易。

        【讨论】:

          猜你喜欢
          • 2018-09-20
          • 1970-01-01
          • 2013-09-20
          • 1970-01-01
          • 2011-04-02
          • 2021-05-25
          • 1970-01-01
          相关资源
          最近更新 更多