zoukankan      html  css  js  c++  java
  • List remove注意点

    public class ListTest {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            List<String> ll = new ArrayList<String>();
            ll.add("1");
            ll.add("2");
            ll.add("3");
            
            for(String str : ll ){
                if(str.endsWith("2")){
                    ll.remove(str);
                }
            }
            
        }
    
    }
    
    
    public class ListTest {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            List<String> ll = new ArrayList<String>();
            ll.add("1");
            ll.add("2");
            ll.add("3");
            
            for(String str : ll ){
                if(str.endsWith("3")){
                    ll.remove(str);
                }
            }
            
        }
    
    }
    public class ListTest {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            List<String> ll = new ArrayList<String>();
            ll.add("1");
            ll.add("2");
            ll.add("3");
    
            
            for (Iterator it = ll.iterator(); it.hasNext();) {
                String str = (String)it.next();
                if(str.equals("3")){
                    it.remove();
                    System.out.println(it);
                }else{
                    System.out.println(it);
                }
            }
    
            System.out.println("end");
        }
    
    }

    用迭代器就不会有问题:

    原因:for是通过指针去判断,如果最后的元素删掉了,那么久没办法判断是否是list结束点了

    迭代器的的hasNext()是通过数值判断

    public boolean hasNext() {  
               return cursor != size();  
    }  
      
    public E next() {  
               checkForComodification();  
        try {  
        E next = get(cursor);  
        lastRet = cursor++;  
        return next;  
        } catch (IndexOutOfBoundsException e) {  
        checkForComodification();  
        throw new NoSuchElementException();  
        }  
    }  
  • 相关阅读:
    Flask---框架入门
    续--Flask, Django
    测试开发中Django和Flask框架
    oracle数据库的存储原理
    Oracle 存储过程—为数传递变量
    Oracle scope中 spfile、memory、both 的区别
    数据库性能衡量指标
    raid卷性能测试
    HTTP POST请求报文格式分析与Java实现文件上传
    使用Navicat 导入导出Mysql数据库
  • 原文地址:https://www.cnblogs.com/huhuuu/p/5716257.html
Copyright © 2011-2022 走看看