HashSet은 어떻게 요소가 중복되지 않도록 합니까?
정의된 Person 클래스
package com.melody.bean;
public class Person {
private String name;
private int age;
/**
*
*/
public Person() {
super();
}
/**
* @param name
* @param age
*/
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the age
*/
public int getAge() {
return age;
}
/**
* @param age the age to set
*/
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
/**
* 31?
* 1.31 , 1
* 2.31
* 3.31 2 5 -1,2
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
}
다음은 테스트 클래스입니다.
package com.melody.set;
import java.util.HashSet;
import com.melody.bean.Person;
public class Demo1_HashSet {
/**
* @param args
* Set , , , ( )
*/
public static void main(String[] args) {
// test1();
HashSet hs = new HashSet<>();
hs.add(new Person(" ", 23));
hs.add(new Person(" ", 24));
hs.add(new Person(" ", 23));
hs.add(new Person(" ", 24));
hs.add(new Person(" ", 23));
// , , HashCode equals
System.out.println(hs.size());
System.out.println(hs);
}
private static void test1() {
HashSet hs = new HashSet<>();
hs.add("ce");
boolean b1 = hs.add("a");
// boolean b2 = hs.add("a");
hs.add("b");
hs.add("c");
hs.add("d");
//HashSet set false
//HashSet set
// System.out.println("b1 = " + b1 + " b2 = " + b2);
System.out.println(hs);
// for
for (String string : hs) {
System.out.println(string);
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.