为了账号安全,请及时绑定邮箱和手机立即绑定

上次问的问题还是没搞懂,再问问

上次问的问题还是没搞懂,再问问

fenkapian 2017-05-12 07:27:24
一个person类,里面有年龄、姓名等属性。有多个person类实例,怎么去除其中姓名相同的实例。求源代码。
查看完整描述

4 回答

?
谜之米

TA贡献8条经验 获得超5个赞

你可重写 equals和hashCode,逻辑如下,如果实例中姓名相同 那么 hashcode 相同,然后把实例集合往set容器里放,如果实例中 姓名有相同的 那么hashcode相同 那么set容器就会用当前实例覆盖之前的hashcode一样的实例。

查看完整回答
2 反对 回复 2017-05-13
?
达拉崩吧斑得贝迪卜多比鲁翁

TA贡献41条经验 获得超38个赞

你的问题有点问题,先向你确认一下,

1、你有一个叫person的类

2、你创建了多个这个类的实例

3、其中实例中有name成员是相同的

解决方法:

第一种:从根源上解决,就是你在实例化的时候,不允许存在相同姓名相同的实例。如果存在就替换原来的或者不允许实例化

第二种:就你描述的解决,你描述的内容是说已经实例出来了多个姓名相同的实例,那么就要确定依据什么条件去去掉相同的实例,例如说:名字为“小明”,年龄大于100岁的去掉。再例如:信息完全相同的去掉(这个更符合实际)。


看你是需要那个,到时候我可以写个简单的例子给你。

查看完整回答
1 反对 回复 2017-05-12
  • fenkapian
    fenkapian
    第一种方法是重写equals和hashcode方法吗?然后把person放进map,利用了map的key不可重复的特性。那如果把person放在value中又该怎么做呢? 两种麻烦都写个例子给我看看啊 谢谢了
?
servlet_jdbc

TA贡献1条经验 获得超0个赞

  1. 创建一个ArrayList集合;

  2. 把实例依次添加到集合里,在添加的时候对集合进行遍历,遍历集合时,判断name属性是否重复,重复则不添加;

  3. 最后集合里的对象就是去重的了。

查看完整回答
反对 回复 2017-05-12
?
幕附

TA贡献78条经验 获得超18个赞


用set啊  看看集合

查看完整回答
反对 回复 2017-05-12
  • 4 回答
  • 0 关注
  • 2283 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信