List 根据条件删除元素(removeIf)

 从List 中删除元素,我看之前人的说是在便利的过程中不能删除元素我今天验证了一下,其实是可以的,而且把java8 中的removeIf 也用上。
其实之所以他们会报错主要是: 
    Integer [] str ={1,3,2,4,5,6,2};
    List integers = Arrays.asList(str); 注意这样转换为List 并不是ArrayList 的,所以remove报 java.lang.UnsupportedOperationException的错,可以利用addAll() 先转为ArrayList 的实例。
    具体原因参考:
    https://blog.csdn.net/lcdaaaa/article/details/80240030

    
    例子:
    Integer [] str ={1,3,2,4,5,6,2};
    List integers = Arrays.asList(str);
    List list =new ArrayList<>();
    list.addAll(integers);
第一种:迭代器
	    Integer [] str ={1,3,2,4,5,6,2};
	    List integers = Arrays.asList(str);
	       List list =new ArrayList<>();
	       list.addAll(integers);
	       Iterator iterator = list.iterator();
	       while (iterator.hasNext()){
	           Integer next = iterator.next();
	           if(next==1 || next==3 || next==2){
	             iterator.remove();
	           }
	       }
	       //这输出list 就行别写iterator
	       System.out.println(list);

第二种:java8 removeIf
       Integer [] str ={1,3,2,4,5,6,2};
       List integers = Arrays.asList(str); 
       List list =new ArrayList<>();
       list.addAll(integers);
       list.removeIf(a->a==2 || a==1);
       System.out.println(list);
       
**注意不要在for循坏中remove**

你可能感兴趣的:(java)