1. import java.util.ArrayList;
    2. import java.util.Iterator;
    3. import java.util.List;
    4. public class IteratorTest1 {
    5. public static void main(String[] args) {
    6. List<String> list = new ArrayList<>();
    7. list.add("a");
    8. list.add("b");
    9. list.add("c");
    10. list.add("d");
    11. Iterator<String> iterator = list.listIterator();//迭代器是一次性的,用了就失效
    12. /*
    13. * 不能使用普通的for循环删除元素,数组的特点,删除中间某个元素,后面的元素替换该下表位置;
    14. * 这将导致循环删除包含这个元素内后面所有的元素
    15. * */
    16. while(iterator.hasNext()){
    17. String value=iterator.next(); //不要在单次循环中多次调用next()
    18. if("c".equals(value)){
    19. iterator.remove(); //用迭代器删除
    20. }
    21. }
    22. System.out.println("-------------");
    23. for(Iterator<String> iterator1=list.iterator();iterator1.hasNext();){
    24. System.out.println(iterator1.next());
    25. // list.add("dddd"); //迭代器其实就是在循环使用数组,所以不能同时编辑数组
    26. }
    27. }
    28. }