黑马程序员技术交流社区
标题:
请大家帮我看一题,万分感谢!
[打印本页]
作者:
sunshine9091
时间:
2014-8-10 18:57
标题:
请大家帮我看一题,万分感谢!
我想删除重复的元素,视频里用的是ArrayList这个容器,但是我用StringBuffer为什么不对呢,我想了好久,还是无果,请大神给点建议,非常感谢!代码如下:
import java.util.ArrayList;
import java.util.Iterator;
public class PersonDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Person p1 = new Person("lishi1",23);
ArrayList al = new ArrayList();
al.add(p1);
al.add(new Person("lishi2",23));
al.add(new Person("lishi3",34));
al.add(new Person("lishi2",23));
al.add(new Person("lishi5",25));
al.add(new Person("lishi6",27));
StringBuffer sb = new StringBuffer();
Iterator it = al.iterator();
while(it.hasNext()){
Person p=(Person)it.next();
if(!sb.equals(p)){
sb.append(p);
}
}
System.out.println(sb.toString());
}
}
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
作者:
jiangweibin2573
时间:
2014-8-10 19:16
if(!sb.equals(p)){
复制代码
你这里判断一个容器中是否包含某个对象是错误的,应该用contains
equals,比较的是容器和你要添加的对象了,当然不相等,全都加进去了,所以没有去重
作者:
pengyu1801
时间:
2014-8-10 19:22
把equals改成contains就好
作者:
铁蛋
时间:
2015-9-14 22:15
啊哈 看出来了,容器sb陆续添加,出了前两个有可能等吧,后面的sb只会有更多lisi存着不可能判断出相同了,对吗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2