List循环使用remove()方法

来源:互联网 发布:linux 打包war 编辑:程序博客网 时间:2024/06/14 00:48

小记

有时候敲代码会遇到这种情况,循环一个list,执行完一个后就要移除它,然后继续循环,如果不注意写很容易运行报错:java.util.ConcurrentModificationException。

在阅读《Java编程思想》时,看到一种很好的写法,不由地想记录下来,在这里简称为方法一,另外还有一种常用的方法,简称为方法二,下面是两个方法的代码:

方法一

List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("3");if (list.size() > 0){    for (String s:new ArrayList<>(list)){        System.out.println(s);        list.remove(s);    }}/*    Output : 1             2             3 */

方法二

List<String> list = new ArrayList<>();list.add("1");list.add("2");list.add("3");if (list.size() > 0){    for (int i = list.size() - 1; i >= 0; i--){        System.out.println(list.get(i));        list.remove(i);    }}/*    Output : 3             2             1 */

总结

个人更喜欢使用方法一,但是不知道会不会有啥隐患呢~

原创粉丝点击