用去除ArrayList中重复元素,思路是定义一个新的ArrayList来接收原来的ArrayList中的元素,如果新的元素没有该元素则添加,如果有了该元素就不添加,返回新的ArrayList.小弟定义了以下小程序,编译没问题,但是不能运行。不知哪里出错。
[import java.util.*;
class ArrayListTest2
{
public static void main(String[] args)
{
ArrayList a=new ArrayList();
a.add("java01");
a.add("java02");
a.add("java03");
a.add("java04");
a.add("java01");
System.out.println(haha(a));
}
public static ArrayList haha(ArrayList a)
{
ArrayList a1=new ArrayList();
Iterator t=a.iterator();
while (t.hasNext())
{
if (!a1.contains(t.next()))
{
a1.add(t.next());
}
}
return a1;
}
}
][/code]
------解决方案--------------------
------解决方案--------------------
t.next()是取出当前迭代器指向元素
如果再调用就会取得下一个元素
如果下一个元素为空就会报错
帮你改了下,一堆警告。。。
- Java code
import java.util.ArrayList;import java.util.Iterator;class Test { public static void main(String[] args) { ArrayList<String> a = new ArrayList<String>(); a.add("java01"); a.add("java02"); a.add("java03"); a.add("java04"); a.add("java01"); System.out.println(haha(a)); } public static ArrayList<String> haha(ArrayList<String> a) { ArrayList<String> a1 = new ArrayList<String>(); Iterator<String> t = a.iterator(); while (t.hasNext()) { String v = t.next(); if (!a1.contains(v)) { a1.add(v); } } return a1; }}