您的位置 首页 java

java中你知道怎么利用hashSet去重吗?

一只IT界中的菜鸟,我立志做一只最菜的鸟

作为一个程序猿我们要有一个善于分析你所见到的产品,最起码你要知道让你做你能不能实现功能

话不多说进入主题

去重作用就是保证数据的唯一性,去重要做的第一件事就是 重写 Object 中的equals 和 hashCode方法

为什么要重写这两个方法

我们要知道Object类中定义的equals()方法是用来比较两个引用所指向的对象的内存地址是否一致;hashCode()是根据对象的值。

有时我们会希望两个不同对象的值相同时、就认为它们两个相同,但是Object中的equals()比较的是地址,所以重写equals()方法,HashCode同样的原理

到本文的重点了上代码

  1. 继承Object类
 public class people  extends  Object {  

2.重写equals 和 hashCode方法

  @ Override 
    public   boolean  equals(Object  o){
          if (o==null) //if后面只有一行是可以省略 {}
              return  false;
          if (this==o)
              return  true;
          if (o instanceof  people){  //instacheof 比较两个是否是同一类型的对象
            people p=    (people)o;
            if (p.getName().equals(this.getName())  &&  p.getAge().equals(this.getAge())){ //name和age是我提供的两个属性
                return  true;
            }
          }
       return  false;
    }
    @Override
    public  int  hashCode(){
        return Objects.hash(name,age);
    }  

3.测试

   @GetMapping("/postMan")
    public   String   postman(){
         Set <people> peopleHashSet = new HashSet<>();
        people p  = new people();
        p.setName("c罗");
        p.setAge(34);
        people p1  = new people();
        p1.setName("c罗");
        p1.setAge(34);
        people p2  = new people();
        p2.setName("姚明");
        p2.setAge(36);
       /* people p1 = new people("姚明",36); //这样写必须要有 构造函数 
        people p2  = new people("c罗",34);*/        peopleHashSet.add(p);
        peopleHashSet.add(p1);
        peopleHashSet.add(p2);
        String    resultPostNan=null;
        for (people  ps:  peopleHashSet) {
            resultPostNan += ps. toString ();
        }
        return  resultPostNan;
    }  

4 结果

如果有不明白的地方,可在下方留言评论或者私信留言,空闲时间看到会回复,如有不同见解欢迎指出问题,共同进步!!!

结束语

预祝全国高考考生,旗开得胜 高考加油送给千万辛辛学子

文章来源:智云一二三科技

文章标题:java中你知道怎么利用hashSet去重吗?

文章地址:https://www.zhihuclub.com/180488.shtml

关于作者: 智云科技

热门文章

网站地图