package com.lovecoding.day18.iterator01;

import org.junit.Test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class TestIterator2 {

    @Test
    public void test01(){

        Collection<String> coll = new ArrayList<>();

        coll.add("1");
        coll.add("2");
        coll.add("3");
        coll.add("4");

        //获取迭代器
        Iterator<String> iterator = coll.iterator();
        //遍历
        while ( iterator.hasNext() ){
            //获取元素
            String next = iterator.next();
            if (next.equals("2")){
                coll.add("21");
            }
            System.out.println(next);
        }

        // 集合 = 工人获取元素。 交给迭代器。
        // 集合 不允许操作元素 （添加 删除）
        // 异常  ConcurrentModificationException

        // 迭代器可以操作



    }
    @Test
    public void test02(){

        Collection<String> coll = new ArrayList<>();

        coll.add("1");
        coll.add("2");
        coll.add("3");
        coll.add("4");

        //获取迭代器
        Iterator<String> iterator = coll.iterator();
        //遍历
        while ( iterator.hasNext() ){
            //获取元素
            String next = iterator.next();
            if (next.equals("2")){
                //删除
                iterator.remove();
            }
            System.out.println(next);
        }
        System.out.println("------");

        System.out.println(coll);
        // 集合 = 工人获取元素。 交给迭代器。
        // 集合 不允许操作元素 （添加 删除）
        // 异常  ConcurrentModificationException

        // 迭代器可以操作

    }
}
