Set集合之hashCode()和equals()

Posted 简简单单zjl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Set集合之hashCode()和equals()相关的知识,希望对你有一定的参考价值。

package com.day15.Set;
/*
* set集合中的元素不能重复(唯一性),也没索引,存取无序
*/

import java.util.HashSet;

import com.day15.bean.Person;

public class HashSet_One {

public static void main(String[] args) {
  /*HashSet<String> hs=new HashSet<>();
  hs.add("a");
  hs.add("a");
  hs.add("b");
  hs.add("c");
  hs.add("d");
  System.out.println(hs);//[a, b, c, d]
    for(String str:hs) {
    System.out.print(str);//abcd
  }*/
  HashSet<Person> hs1=new HashSet<>();
    hs1.add(new Person("Kobe",20));//Person类中必须要重写hashCode()和equals()方法
    hs1.add(new Person("Kobe",20));
    hs1.add(new Person("KG",21));
    hs1.add(new Person("KG",21));
    hs1.add(new Person("KG",21));
    hs1.add(new Person("PP",22));
    for(Person p:hs1) {
      System.out.print(p);//Kobe,20KG,21PP,22
    }
  }
}

以上是关于Set集合之hashCode()和equals()的主要内容,如果未能解决你的问题,请参考以下文章

Java之hashCode的作用和equals方法的重构规则

Java Set集合通过重写hashCode和equals实现去重

java之set接口

为啥在java的set集合中 hashcode相同 但equals结果可能为false

1.5 编程规约_集合处理

java里equals和hashCode之间啥关系