我希望能够减少ArrayList中的值以模拟从堆中移除的对象。不过,我不能用ArrayList(字符串)来做到这一点操作ArrayList中的值Java
下面的例子是我所尝试的。
ItemArray.get(pressedItem + 1) = (ItemArray.get(pressedItem + 1)) - 1
有没有办法让ArrayList中的值变成更可操作的状态?
编辑:
只是要指出,我的ArrayList是的ArrayList(String)在此刻
我希望能够减少ArrayList中的值以模拟从堆中移除的对象。不过,我不能用ArrayList(字符串)来做到这一点操作ArrayList中的值Java
下面的例子是我所尝试的。
ItemArray.get(pressedItem + 1) = (ItemArray.get(pressedItem + 1)) - 1
有没有办法让ArrayList中的值变成更可操作的状态?
编辑:
只是要指出,我的ArrayList是的ArrayList(String)在此刻
您需要使用List#set()
变异列表。
List<Integer> items = new ArrayList<Integer>();
// later...
int position = pressedItem + 1;
items.set(position, items.get(position) - 1);
感谢您的快速响应人,但'ItemArray.get(位置) - 1'返回一个错误'运算符 - 未定义为参数类型的字符串,int' – Jack
@Jack这意味着您的列表设置为包含字符串。 Java是强类型的,它不会神奇地将字符串转换为数字值。请将您的列表指定为包含Integer类型或[将字符串转换为整数](http://download.oracle.com/javase/7/docs/api/java/lang/Integer.html#valueOf(java.lang 。串))。 –
啊辉煌,这是完美的谢谢你=)你可以把你的答案转换为一个整数的东西吗?谢谢。 – Jack
ArrayList
是一类。假设ItemArray
是该类的一个实例(请以小写字母顺序启动变量),您需要通过方法调用来使用它。在你的情况下,set
。像这样:
itemArray.set(pressedItem + 1, itemArray.get(pressedItem + 1) - 1)
记住,上面只会工作完全一样,如果你宣布你ArrayList
为包含整数或一些其他数字类型,所以Java能为你做转换的东西:
List<Integer> itemArray = new ArrayList<Integer>();
看起来不像我可以用
@Jack然后,您将不得不a)在填充列表或b)存储字符串并在使用时进行转换。 a)是可取的,因为它可以更快地捕捉不正确的输入,并且使后面的处理更容易。 –
你遇到了什么错误 ? – r15habh