A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

一:如果是字符串对象的话。只用创建新对象。通过iterator进行遍历。然后将获取的到字符串对象转型为字符换,经过转型后,调用新集合的contains方法对获取到的元素进行判断,如果不存在就把元素存储在新集合中即可。
二:如果是一个(学生)对象,该对象中有很多的属性和方法。如果采用的是contains方法进行比较。那么比较的时候默认比较的是对象的地址值。所以不管怎么比较它们是不可能相等的。这个时候需要看底层的代码。通过底层的代码可知,底层使用了equals方法。因此。我们可以对equals方法进行重写,让底层按照我们自己定义的规则来进行比较。所以,可以在学生类中添加equals方法。 Equals方法中有比较有三部分:
第一部分----提高代码判断的效率:  采用 this == obj 的判断比较。这段代码用于判断传过来的对象是否是同一个对象,如果是同一对象的话,就 返回true。
第二部分----提高代码的健壮性: 采用 !(obj instance of Student) (以Stduent类来举例) 用于判断传过来的对象是否是Student 类的一个对象,如果不是,然后false
第三部分----比较对象的属性值是否相等:首相要比较该对象的属性值,就必须要把传过来的Object 类型的对象转化成为Student 对象的子类。这样才能调用student的属性。属于向下转型代码如下:
Student stu = (Student) obj;
分两种情况

1.比较字符串类型的成员变量:  this.name.equals(stu.name) 注意这里的equals 是this.name 这个字符串类象的方法。并不是调用了本方法。
2.比较整数类型的成员变量:        this.age == stu.age;   比较两个整数类型的age是否相等。
经过三次比较,基本上就穷尽了所有的点,这样就能实现去重的功能。

18 个回复

倒序浏览
自己总结的。
回复 使用道具 举报
顶一下   对新手帮助很大
回复 使用道具 举报
wwb1105 发表于 2015-5-28 19:35
顶一下   对新手帮助很大

{:2_31:} 哟哟哟哟哟~~
回复 使用道具 举报
膜拜大神!这个你都想的到!
回复 使用道具 举报
qian0217wei 来自手机 高级黑马 2015-5-29 08:27:51
地板
来学习了
回复 使用道具 举报
顶顶顶:victory:
回复 使用道具 举报
tinlen 中级黑马 2015-5-29 23:32:53
8#
真详细,不知道到自己被问到这种问题能不能说全
回复 使用道具 举报
Amu 中级黑马 2015-5-29 23:42:47
9#
新的思路,顶一个
回复 使用道具 举报
总结得很好啊,大神。
回复 使用道具 举报
新人报道,正在努力中
回复 使用道具 举报
各位加油~~
回复 使用道具 举报
Lucus 中级黑马 2015-5-31 21:55:50
13#
很详细,总结的很好!
回复 使用道具 举报
学习一下,顶顶
回复 使用道具 举报
点招是考哪些的?都要敲出来么?
回复 使用道具 举报
回复 使用道具 举报
赞一下,很详细
回复 使用道具 举报
学习了......
回复 使用道具 举报
hugh88 中级黑马 2015-11-26 15:57:36
19#
大神你好,大神求教,大神再见
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马