List中删除元素remove和removeAll

来源:互联网 发布:老友网南宁网络电视台 编辑:程序博客网 时间:2024/04/30 15:53
public class ListTest {    public static void main(String[] args) {        List<Integer> list = new ArrayList<Integer>();        list.add(1);        list.add(2);        list.add(3);        list.add(3);        list.add(4);        for (int i=0; i<list.size(); i++) {            if (list.get(i) == 3) {                list.remove(i);            }        }        System.out.println(list);    }}

输出结果:[1, 2, 3, 4]
List中元素没有全部删除,由于每remove掉一个元素以后,后面的元素都会向前移动,导致则刚刚移过来的元素没有被读取。所以通过从后向前遍历可以解决这个问题,代码如下:

for (int i = list.size() - 1; i >= 0; i--) {            System.out.println(i);            if (list.get(i) == 3) {                list.remove(i);            }        }

也可以通过removeAll方法删除,传参是Collection

List<Integer> item = new ArrayList<Integer>();item.add(3);list.removeAll(item);
0 0
原创粉丝点击