| 程序结果为java01,java03.当为情况1时,程序结果为java01,java01,java02,java03.这到底是为啥了?复制代码import java.util.ArrayList;
import java.util.Iterator;
public class SingleElement 
{
        /**
         * 去除ArrayList中的重复元素
         */
        public static void main(String[] args)
        {
                ArrayList<String> al=new ArrayList<String>();
                al.add("java01");
                al.add("java01");
                al.add("java02");
                al.add("java03");
                ArrayList<String> newal=singleElement(al);
                System.out.println(newal);
        }
        public static ArrayList<String> singleElement(ArrayList<String> al)
        {
                ArrayList<String> newal=new ArrayList<String>();
                for(Iterator<String> it=al.iterator();it.hasNext();)
                {
                        //String str=it.next();//将str传入下面的contains中时结果还不一样,为什么?当然add的参数也改为str。情况1
                        if(!newal.contains(it.next()));//现在的结果没有java02为什么?
                                newal.add(it.next());                
                }
                return newal;
        }
}
 |