------- android培训、java培训、期待与您交流! ----------
这个问题是说,你不能在对一个List进行遍历的时候将其中的元素删除掉,只能等等遍历结束再remove掉
<span style="font-size:18px;">import java.util.*;
class Person
{
private String name;
private int age;
Person(String name,int age)
{
this.name = name;
this.age = age;
}
public boolean equals(Object obj)
{
if(!(obj instanceof Person))
//throwClassCastException("class error");
return false;
Person p = (Person)obj;
System.out.println(this.name+"...."+p.name);
return this.name.equals(p.name)&& this.age ==p.age;
}
public String getName()
{
return name;
}
public int getAge()
{
return age;
}
}
class ArrayListTestDemo2
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String[]args)
{
ArrayList al = new ArrayList();
al.add(newPerson("lisi01",10)); //Object obj = newPreson("","");类型提升
al.add(newPerson("lisi02",20));
al.add(newPerson("lisi03",30));
al.add(newPerson("lisi03",30));
al.add(newPerson("lisi04",40));
al.add(newPerson("lisi041",40));
al = singleElement(al);
System.out.println("move04"+al.remove(newPerson("lisi041",40)));//必须放在下一句的上面否则出现ConcurrentModificationException异常
Iterator it = al.iterator();
//System.out.println(al);
while(it.hasNext())
{
//Object obj = it.next();
//Person p =(Person)obj;
//sop(it.next().getName()+" "+it.next().getAge());
Person p =(Person)it.next();
System.out.println(p.getName()+" "+p.getAge());
}
}
public static ArrayListsingleElement(ArrayList al)
{
ArrayList nal = new ArrayList();
Iterator it = al.iterator();
while(it.hasNext())
{
Object obj = it.next();
if(!nal.contains(obj))
nal.add(obj);
}
return nal;
}
}</span>
------- android培训、java培训、期待与您交流! ----------