黑马程序员技术交流社区
标题:
这段代码哪里错了?
[打印本页]
作者:
yang649981273
时间:
2014-7-18 19:51
标题:
这段代码哪里错了?
/*把相同元素删除运行之后不出结果是怎么回事啊?求指点!*/
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))
return false;
person p=(person)obj;
return this.name.equals(p.name)&&this.getAge()==p.getAge();
}
public String getName(){
return name;
}
public int getAge(){
return age;
}
}
class ArrayListTest
{
public static void sop(Object obj){
System.out.println(obj);
}
public static void main(String[] args)
{
ArrayList al=new ArrayList();
al.add(new person("zhangsan1",31));
al.add(new person("zhangsan2",32));
al.add(new person("zhangsan3",33));
al.add(new person("zhangsan4",34));
al.add(new person("zhangsan3",33));
al.add(new person("zhangsan4",34));
al=singleElement(al);
Iterator it=al.iterator();
while(it.hasNext()){
person p=(person)it.next();
sop(p.getName()+"....."+p.getAge());
}
}
public static ArrayList singleElement(ArrayList al){
ArrayList newal=new ArrayList();
Iterator it=al.iterator();
while(it.hasNext()){
Object obj=it.next();
if(newal.contains(obj))
newal.add(obj);
}
return newal;
}
}
复制代码
作者:
fantacyleo
时间:
2014-7-18 20:02
57行,逻辑错误:应该是obj不在newal中才往里添加。你写成了obj在newal中才添加。
作者:
思维
时间:
2014-7-18 20:17
第57行目测改成 if(!(newal.contains(obj)))就对了
作者:
yang649981273
时间:
2014-7-19 14:51
fantacyleo 发表于 2014-7-18 20:02
57行,逻辑错误:应该是obj不在newal中才往里添加。你写成了obj在newal中才添加。 ...
O(∩_∩)O谢谢
作者:
一十二。
时间:
2014-7-19 18:20
已经解决了啊,白看半天了
作者:
一十二。
时间:
2014-7-19 18:21
已经解决了啊,白看半天了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2