Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.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_Arrays_Arraylist_Data Structures_Error Handling - Fatal编程技术网

Java 从arraylist添加或删除元素时出错

Java 从arraylist添加或删除元素时出错,java,arrays,arraylist,data-structures,error-handling,Java,Arrays,Arraylist,Data Structures,Error Handling,我需要遍历arrayList,并根据某些条件从中添加/删除元素。问题是,在添加/删除arrayList后,其大小会发生变化,因此会出现空指针异常错误。任何帮助都将不胜感激 public class hello{ MyArrayList<Integer> list = new MyArrayList<>(); list.add(1); list.add(2); ....... for (int i = 0; i < list.size(

我需要遍历arrayList,并根据某些条件从中添加/删除元素。问题是,在添加/删除arrayList后,其大小会发生变化,因此会出现空指针异常错误。任何帮助都将不胜感激

 public class hello{
   MyArrayList<Integer> list = new MyArrayList<>();
   list.add(1);
   list.add(2);
   .......
   for (int i = 0; i < list.size(); i++){
       if(//some condition){
          list.add(//something);
       }
       else if(//some condition){
           list.remove(//something);

      }
    }
 }
公共类你好{
MyArrayList=新建MyArrayList();
增加第(1)款;
增加(2);
.......
对于(int i=0;i
假设MyArrayList类扩展了ArrayList,则可以使用ListIterator遍历列表并添加/删除元素


您应该使用foreach循环。这样,无论添加或删除元素时大小如何变化,都将遍历列表中的每个元素

下面是一个例子:

for(Integer number : list) {
    if(number <= 1){
        list.remove(number);
    }
    else if(number >= 3) {
        list.add(number + 1);
    }
}
for(整数:列表){
如果(数字=3){
列表。添加(编号+1);
}
}

您还可以使用流API并使用过滤器或映射遍历所有元素,如下所示:

list.stream().filter(a->"some condition").map(a-> "some mapping").collect("some collector")