我是靠谱客的博主 时尚秋天,最近开发中收集的这篇文章主要介绍list集合for 与iterator区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1使用iterator可以使用自带的remove()删除元素,其他删除会报错;

2 增强for 底层实现是iterator;

3 for i=0;i<list.size();i++;删除会造成元素获取不到;

4 看来都不是线程安全了,本来以为iterator是iterator模式支持元素添加删除,看来不行啊

 

package xx.study.design.iterator;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListFor {
    public static void main(String[] args) {
        List<String> list=new ArrayList<String>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");

        
        Iterator<String> iterator= list.iterator();
        while (iterator.hasNext()){
            String tem=iterator.next();
            System.out.println(tem);
            //必须使用这个进行删除 list.remove(tem)程序也会报错
            //Exception in thread "main" java.util.ConcurrentModificationException
            iterator.remove();

        }
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");
        System.out.println("增强for ");
        for(String str:list){//底层是iterator
            System.out.println(str);
            //list.remove(str); 会报错
        }
        System.out.println(" for(int i=0;i<list.size(); i++){  --start=-");
       for(int i=0;i<list.size(); i++){//删除时导致其他对象获取不到
            System.out.println(list.get(i));
            list.remove(list.get(i));
        }
        System.out.println("over");
    }
}

输出:

a
b
c
d
增强for 
a
b
c
d
 for(int i=0;i<list.size(); i++){  --start=-
a
c
over

 

最后

以上就是时尚秋天为你收集整理的list集合for 与iterator区别的全部内容,希望文章能够帮你解决list集合for 与iterator区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部