练习泛型修饰符时构建ListUtil工具类使用迭代器方法遍历失败

问题遇到的现象和发生背景

练习泛型修饰符时构建ListUtil工具类使用迭代器方法遍历失败

问题相关代码,请勿粘贴截图

工具类

package A02_genericDemo2;

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

public class ListUtil {
    private  ListUtil() {


    }
    //泛型修饰符要写在修饰类之后
    public static void addAll(ArrayList list,E e1,E e2){
            list.add(e1);
            list.add(e2);
    }
    //在调用方法时可以添加任意个元素
    public static void addAll2(ArrayList list,E...e){
            //e的底层是一个数组
        //1.for遍历
       /* for (int i = 0; i < e.length; i++) {
            list.add(e[i]);
        }*/
        //2.增强for遍历
        /*for (E tempEle : e) {
            list.add(tempEle);
        }*/
        //3.迭代器遍历
       Iterator it = list.iterator();
        while(it.hasNext()){
             E e1= it.next();
             list.add((E)e1);
        }
    }

}


测试类

package A02_genericDemo2;
import java.util.ArrayList;
import java.util.Iterator;

public class Test01 {
    public static void main(String[] args) {
        ArrayList list1=new ArrayList<>();
        ListUtil.addAll2(list1,"nihao","zixiangpeng","zhangsan","王五");
        System.out.println(list1);



    }
}


使用Iterator遍历的是list集合,而不是addAll2方法里的可变长度参数e,使用for-each来遍历可变长度参数e,然后把它逐一添加到list即可。修改如下:
参考链接:
Java中方法参数后面“...“的理解_ID_云泽的博客-CSDN博客_java 参数...


import java.util.ArrayList;
import java.util.Iterator;
 
public class ListUtil {
    private  ListUtil() {
 
 
    }
    //泛型修饰符要写在修饰类之后
    public static<E> void addAll(ArrayList<E> list,E e1,E e2){
            list.add(e1);
            list.add(e2);
    }
    //在调用方法时可以添加任意个元素
    public static<E> void addAll2(ArrayList<E> list,E...e){
            //e的底层是一个数组
        //1.for遍历
       /* for (int i = 0; i < e.length; i++) {
            list.add(e[i]);
        }*/
        //2.增强for遍历
        /*for (E tempEle : e) {
            list.add(tempEle);
        }*/
        //3.迭代器遍历
//       Iterator<E> it = list.iterator();
//        while(it.hasNext()){
//             E e1= it.next();
//             list.add((E)e1);
//        }
        
        for(E s:e) {
            list.add(s);
        }
        
    }
    
    public static void main(String[] args) {
        ArrayList<String> list1=new ArrayList<>();
        ListUtil.addAll2(list1,"nihao","zixiangpeng","zhangsan","王五");
        System.out.println(list1);
 
 
 
    }
 
}


 

img

失败的结果是什么,是报错还是怎么了