黑马程序员技术交流社区

标题: 大神速来! [打印本页]

作者: 奔来的黑马    时间: 2015-1-7 00:00
标题: 大神速来!
当往ArrayList里面存入元素要求不重复时,比如存入学生对象,当同名同姓时
                           视为同一个人,则不往里面存储。则定义学生对象时,需复写equals方法
                           public boolean equals(Object obj)
                           {
                                if(!(obj instanceof Student))
                                        return false;
                                Student stu = (Student)obj;
                                return this.name.equals(stu.name)&&this.age==stu.age;
                           }
                           则往ArrayList集合通过add存入学生对象时,集合底层自己会调用学生类的equals方法,
                           判断重复学生则不存入。
ArrayList不是可以存储重复元素吗?要求不重复时该怎么做呢?
作者: 黄宝宝    时间: 2015-1-7 18:52
ArrayList是可以存储重复元素的,因为底层数据结构是数组,一般都这样玩,如果非要不允许它加入重复元素,那就循环+判断后添加。
作者: xiaoyi    时间: 2015-1-7 19:32
然后你还需要写一个方法,里面用用contains方法判断,它会自动调用你复写的equals方法




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2