JAva遍歴しながら削除する問題

1835 ワード

  • @outhor hjx
  • @create 2017-11-30 10:20

  • エンハンスサイクル反復の使用
        /**
         *        (      users.remove()     List   ConcurrentModificationException)
         */
        public static void list(){
            List users = getUsers();
            Iterator iterator = users.iterator();
            while (iterator.hasNext()){
            //      
                if (iterator.next().getId()>0 && iterator.next().getId()<3){
                    iterator.remove();
                }
            }
            for (User user:users){
                System.out.println(user.getName());
            }
        }
        /**
         *      
         */
        public static void set(){
            Set users = getSetUsers();
            Iterator iterator = users.iterator();
            while (iterator.hasNext()){
                //      
                if (iterator.next().getId()>0 && iterator.next().getId()<3){
                    iterator.remove();
                }
            }
            for (User user:users){
                System.out.println(user.getName());
            }
        }