Java 如何更改arraylist中的整数而不丢失其在该列表中的顺序
所以我想从arraylist中的一个特定数字中减去1。然而,这样做的方式低于它使它失去了它的位置,以下一个数字Java 如何更改arraylist中的整数而不丢失其在该列表中的顺序,java,arraylist,Java,Arraylist,所以我想从arraylist中的一个特定数字中减去1。然而,这样做的方式低于它使它失去了它的位置,以下一个数字 int x = 0; ArrayList<Integer> values = new ArrayList<>(); values.add(4); values.add(8); x = values.get(0) - 1; values.remove(0); valu
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);
intx=0;
ArrayList值=新的ArrayList();
增加(4);
增加(8);
x=值。获取(0)-1;
值。删除(0);
加上(x);
如何更改
值。在没有值的情况下获取(0)
。在删除第一个值时获取(1)
位置?我相信您希望通过减去一来更新第一个值。也就是说,4
应该变成3
,值应该从4,8
变为3,8
。您应该调用而不是remove
。像
values.set(0, values.get(0) - 1);
System.out.println(values);
ArrayList值=新的ArrayList();
增加(4);
增加(8);
value.set(0,values.get(0)-1);
您可能需要使用。方法是:获取x
的索引,并使用它将值设置回列表中的位置。如果只想减去特定的索引
,可以使用.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]
List values=new ArrayList();
增加(4);
增加(8);
values.stream().forEach(x->{
值.set(值.indexOf(x),x-1);
});
System.out.println(值);//[3, 7]
注意:如果使用enhanced for loop
执行此操作,您可以获得java.util.ConcurrentModificationException
,而此代码可能会解决问题,确实有助于提高您的文章质量。请记住,您将在将来回答读者的问题,而这些人可能不知道您的代码建议的原因
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]