【问题标题】:Manipulating Values in ArrayList Java在 ArrayList Java 中操作值
【发布时间】:2011-10-28 18:17:30
【问题描述】:

我希望能够减少 ArrayList 中的值以模拟从一堆中移除的对象。但是我不能用 ArrayList(String)

下面的例子是我尝试过的。

ItemArray.get(pressedItem + 1) = (ItemArray.get(pressedItem + 1)) - 1

有没有办法让 ArrayList 中的值进入更易于操作的状态?

编辑:

只是指出我的 ArrayList 目前是 ArrayList(String)

【问题讨论】:

    标签: java string arraylist


    【解决方案1】:

    您需要使用List#set() 来改变列表。

    List<Integer> items = new ArrayList<Integer>();
    // later...
    int position = pressedItem + 1;
    items.set(position, items.get(position) - 1);
    

    【讨论】:

    • 感谢您的快速响应,但ItemArray.get(position) - 1 返回错误The operator - is undefined for the argument type(s) String, int
    • @Jack 这意味着您的列表设置为包含字符串。 Java 是强类型的,它不会神奇地将字符串转换为数值。将您的列表指定为包含整数类型或convert the String to an Integer
    • 啊,太好了,谢谢 =) 您能否在答案中添加一些关于转换为整数的内容?谢谢。
    • 为您的数据使用正确的数据类型;存储整数列表,而不是字符串。
    【解决方案2】:

    ArrayList 是一个类。假设ItemArray 是该类的一个实例(请以小写字母开头变量,顺便说一句),您需要通过方法调用来使用它。在你的情况下,set。像这样:

    itemArray.set(pressedItem + 1, itemArray.get(pressedItem + 1) - 1)
    

    请注意,如果您将 ArrayList 声明为包含整数或其他数字类型,则上述内容只会完全一样地工作,因此 Java 可以为您完成转换工作:

    List<Integer> itemArray = new ArrayList<Integer>();
    

    【讨论】:

    • 看起来我不能用 声明我的 ArrayList,因为我正在用 CSV 文件的内容填充它:/ 目前是
    • @Jack 然后你要么必须 a) 在填充列表时进行转换,要么 b) 存储字符串并在使用时进行转换。 a) 是可取的,因为它可以更快地捕获错误输入并使以后的处理更容易。
    猜你喜欢
    • 1970-01-01
    • 2023-01-25
    • 2011-08-14
    • 1970-01-01
    • 2018-04-20
    • 1970-01-01
    • 2013-11-22
    • 2023-03-08
    • 1970-01-01
    相关资源
    最近更新 更多