【问题标题】:Set value in ArrayList<Object[]>在 ArrayList<Object[]> 中设置值
【发布时间】:2012-03-04 20:10:57
【问题描述】:

自从我的数据结构课程以来已经有一段时间了,我很难弄清楚这一点。我知道如果我想从Object[]ArrayList 中获取值,我可以使用

nameOfArrayList.get(row)[col];

但我似乎无法弄清楚或在网上找到如何设置值。

我是否必须创建一个新对象并将其设置为nameOfArrayList.get(row),更改值然后使用

nameOfArrayList.set(row,Object[])?

【问题讨论】:

    标签: java data-structures arraylist


    【解决方案1】:

    试试这个:

    nameOfArray.get(row)[col] = ...;
    

    这会在nameOfArray ArrayList 中索引row 的数组的索引col 处设置一个新值。

    如果你想在nameOfArray 的位置row 中放入一个新数组,试试这个:

    nameOfArray.set(row, new Object[]);
    

    这会创建一个新的对象数组并将其放在索引rownameOfArray 下。见ArrayList.set()

    【讨论】:

    • 哇,这对我来说很奇怪。我不认为访问器方法实际上是一个变异器。我不敢相信事情就这么简单。我现在明白它的意义了,本质上它是通过 nameOfArray.get() 获取 Object 数组,并且包含 int 的括号与使用 Object[int]= 命令相同。谢谢!
    • @Geoff - get 只是返回数组,一个只读操作。之后你对阵列做什么是你的事。 :) 以上等价于Object[] arr = nameOfArray.get(row); arr[col] = ...;
    【解决方案2】:

    这是一个简单的基本运行。

    如果你想在最后添加对象,你可以使用类似

    nameOfArray.add(&lt;object array&gt;)

    如果您希望它位于上述指定索引处,则其他情况

    nameOfArray.set(index, &lt;object array&gt;)

    Reference

    &lt;object array&gt;.get(row)[col] = change value

    【讨论】:

    • 这是设置一整行。我认为 OP 想要设置一个特定的行、列。
    • 附加的第一行应该是nameOfArray.add(&lt;object array&gt;)而不是set。后者总是需要一个索引。
    猜你喜欢
    • 2012-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多