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();  
        }  
    }  
  • 相关阅读:
    ‎CocosBuilder 学习笔记(2) ccbi 文件结构分析
    ‎Cocos2d-x 学习笔记(22) TableView
    ‎Cocos2d-x 学习笔记(21.1) ScrollView “甩出”效果与 deaccelerateScrolling 方法
    ‎Cocos2d-x 学习笔记(21) ScrollView (CCScrollView)
    pkg-config
    变量定义
    perror 与 strerror
    popen and system
    exit
    uint8_t
  • 原文地址:https://www.cnblogs.com/huhuuu/p/5716257.html
Copyright © 2011-2022 走看看