问题描述
- 循环判断处,为何用Object对象代替li.next()返回结果正确,否则就不对!求大神答疑!
- /*
需求:定义一种方法,找出集合中的单独元素
思路:
1、创建一个新的集合
2、遍历集合所有元素
3、将新集合中没有的元素添加到新集合当中
4、返回新集合
/
import java.util.;
class ArrayListTest
{
public static void sop(Object obj){// 单独定义的一个输出方法
System.out.println(obj);
}
public static ArrayList singleElement(ArrayList al){//定义方法,查找集合中的单个元素,并添加到新集合当中
ListIterator li=al.listIterator();
ArrayList newal=new ArrayList();
while(li.hasNext()){//循环判断集合中是否还有元素
//Object obj=li.next();
if(!newal.contains(li.next())){
newal.add(li.next());}
}
return newal;
}
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add(""java01"");
al.add(""java02"");
al.add(""java01"");
al.add(""java01"");
al.add(""java03"");
al.add(""java01"");
al.add(""java02"");
sop(al);//输出原始集合
al=singleElement(al);//对原始集合进行筛选,保留相同元素
sop(al);//输出新集合
}
}
解决方案
// 假定这时 li 中有 {AB}if(!newal.contains(li.next())){ // 这时li.next()返回A,判断的是A是否存在 newal.add(li.next()); // 假如不存在,又调用li.next()返回B,添加的是B啊!B啊!!B啊!!!}
时间: 2024-11-01 05:58:07