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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 汪平乐 高级黑马   /  2013-5-28 13:32  /  1183 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 汪平乐 于 2013-5-28 18:25 编辑

代码:

123.jpg (31.98 KB, 下载次数: 0)

123.jpg

456.jpg (30.67 KB, 下载次数: 0)

456.jpg

256.jpg (10.87 KB, 下载次数: 0)

256.jpg

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

4 个回复

正序浏览
吴刚—heima 发表于 2013-5-28 14:51
我想告诉你的是,你下面的代码使用迭代器将ArrayList中的对象遍历出来,其中ArrayList里面存储的数据如楼上 ...

你解答的很详细,我是想去掉重复的相同元素,让集合复写equals,在ArrayList(new Person())时调用,结果很明显没有调用...
回复 使用道具 举报
顾玲玉 发表于 2013-5-28 13:39
因为ArrayList本身可以添加存放相同值,添加成功了,当然也能打印了。

使用ArrayList(collection)这种构造方法,然后让集合具备我复写的equals方法,这样可行不?
回复 使用道具 举报
我想告诉你的是,你下面的代码使用迭代器将ArrayList中的对象遍历出来,其中ArrayList里面存储的数据如楼上所说是可以重复的,你的euquals方法想要的功能是覆盖相同的数据,但是你要看清楚,你在遍历的时候,实际上并没有调用这个函数,你只是使用构造方法初始化了几个对象,并且将其添加到ArrayList中,那么你怎么能够期望你相同的数据会被去掉呢?
这是我的看法,你好好考虑一下,我觉得你那个equals方法并不合适,因为感觉无从调用,因为你必须事先知道哪两个相等,否则你必须给其余对象都调用equals方法来将其数据覆盖掉。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
因为ArrayList本身可以添加存放相同值,添加成功了,当然也能打印了。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马