![](/img/trans.png)
[英]ArrayList<Integer> automatically change its type to ArrayList <String>
[英]How to change an integer from an arraylist without it losing its order in that list
所以我想从数组列表中的特定数字中减去 1。 但是,按照它下面的方式进行操作会使它失去对下一个数字的位置。
int x = 0;
ArrayList<Integer> values = new ArrayList<>();
values.add(4);
values.add(8);
x = values.get(0) - 1;
values.remove(0);
values.add(x);
当我删除第一个时,如何改变values.get(0)
而不让values.get(1)
得到它的位置?
我相信您想通过减去一个来更新第一个值。 也就是说, 4
应该变成3
并且values
应该从4,8
变为3,8
。 您应该调用List.set(int, E)
而不是remove
。 喜欢,
values.set(0, values.get(0) - 1);
System.out.println(values);
ArrayList<Integer> values = new ArrayList<>();
values.add(4);
values.add(8);
values.set(0,values.get(0)-1);
您可能想要使用Java 流。 方法是:获取x
的索引,并使用它来将值设置回 List 中的位置。 如果只想减去某个index
,可以使用.filter
List<Integer> values = new ArrayList<Integer>();
values.add(4);
values.add(8);
values.stream().forEach(x -> {
values.set(values.indexOf(x), x - 1);
});
System.out.println(values); // [3, 7]
注意:如果使用enhanced for loop
您可以获得java.util.ConcurrentModificationException
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.