黑马程序员技术交流社区

标题: 请大家帮我看一题,万分感谢! [打印本页]

作者: 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
  1. 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