java吧 关注:1,297,111贴子:12,831,698
  • 4回复贴,共1
求助

set<pet>p =new hashset<pet>(petlist)

只看楼主收藏回复

请问为什么当petlist是一个包含重复元素的list集合时,打印p时也会出现重复元素?不是hashset不允许出现相同元素吗


IP属地:湖北来自iPhone客户端1楼2024-03-16 00:55回复
    把程序和程序的输出贴出来


    IP属地:北京来自Android客户端2楼2024-03-16 01:47
    回复
      2026-02-07 19:42:22
      广告
      不感兴趣
      开通SVIP免广告
      有重写pet类的hashcode和equals方法吗?


      IP属地:福建来自Android客户端4楼2024-03-16 05:13
      回复
        要重写hascode equlas


        IP属地:江西来自iPhone客户端5楼2024-03-16 11:49
        回复
          在《Tinking in Java》这本书的第11章 Collection和Iterator那里
          List<Pet> petlist = Pets.arrayList(8);
          Set<Pet> petset = new HashSet<Pet>(petlist);
          display(petlist);
          打印 0:Hamster 1:Cymric 2:Hamster 3:Hamster 4:Mutt 5:Cymric 6:Hamster 7:Mutt
          display(petset);
          打印 3:Hamster 4:Mutt 1:Cymric 0:Hamster 2:Hamster 5:Cymric 6 :Hamster 7:Mutt
          第二个display只是改变了排序但没有排重


          IP属地:湖北来自iPhone客户端7楼2024-03-16 18:00
          回复