Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何更改arraylist中的整数而不丢失其在该列表中的顺序_Java_Arraylist - Fatal编程技术网

Java 如何更改arraylist中的整数而不丢失其在该列表中的顺序

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

所以我想从arraylist中的一个特定数字中减去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);
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]