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();  
        }  
    }  
  • 相关阅读:
    LUA表的引用理解
    UNITY 打包安卓APK
    UNITY打包问题
    U3D 打包时找不到tag的问题
    break prefab instance的原理
    C#调用LUA函数
    LUA 利用#遍历表的问题
    U3D笔记11:47 2016/11/30-15:15 2016/12/19
    Unity3D 预设打包的注意事项
    回调 和 覆盖
  • 原文地址:https://www.cnblogs.com/huhuuu/p/5716257.html
Copyright © 2011-2022 走看看