zoukankan      html  css  js  c++  java
  • List的remove()方法的三种正确打开方式

    转:

    java编程:List的remove()方法的三种正确打开方式!

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/sinat_29355599/article/details/81607554

    方法一:

    倒序循环,因为list删除只会导致当前元素之后的元素位置发生改变,所以采用倒序可以保证前面的元素没有变化;

    
    for(int i=list.size()-1;i>=0;i--){
      list.remove(i);
    }
    • 1
    • 2
    • 3
    • 4

    方法二:

    顺序循环时,删除当前位置的值,下一个值就会补到当前位置,所以需要执行i–操作;

    for (int i=0; i<list.size(); i++) {
            if (list.get(i) == 3) {
                list.remove(i);
                i--;
            }
        }
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    方法三:

    注意必须用迭代器的remove()方法,不要用list的remove,不然会发生java.util.ConcurrentModificationException 异常,此异常的解决方式在另一篇博客里有。

    if (null != list && list.size() > 0) {
        Iterator it = list.iterator();  
        while(it.hasNext()){
            Student stu = (Student)it.next(); 
            if (stu.getStudentId() == studentId) {
                it.remove(); //移除该对象
            }
        }
    }
  • 相关阅读:
    class线程信息
    Class 文件简介
    JVM对象及垃圾回收处理
    jvm体系结构
    查找

    二叉树
    队列


  • 原文地址:https://www.cnblogs.com/libin6505/p/11453195.html
Copyright © 2011-2022 走看看