set对象去重失效问题

  • Hashset对于基本类型来说基本都有效

  • 对于新new对象或者新生的list包含对象,则不一定不生效,因为set的底层是map实现,而map会根据我们的hash算法计算相应值放在对应放置,通过equals方法来取相同hash值的不同键值,新生成的对象在堆内存中存储字节不一样,则达不到去重效果

    解决办法:将对象中的hashCode方法和equals方法重写,改为自己所需要的按字段或者合并字段,视自己实际情况(如id,name等字段),即可解决

posted @ 2020-12-09 09:03  guojunpeng-hub  阅读(657)  评论(0)    收藏  举报