s-day03--HashSet存储自定义对象
This commit is contained in:
@@ -33,10 +33,10 @@ public class HashDemo07 {
|
||||
String s4 = "重地";
|
||||
String s5 = "abc";
|
||||
String s6 = new String("abc");
|
||||
System.out.println(s3.hashCode());
|
||||
System.out.println(s4.hashCode());
|
||||
System.out.println(s5.hashCode());
|
||||
System.out.println(s6.hashCode());
|
||||
System.out.println(s3.hashCode());//1179395
|
||||
System.out.println(s4.hashCode());//1179395
|
||||
System.out.println(s5.hashCode());//96354
|
||||
System.out.println(s6.hashCode());//96354
|
||||
|
||||
HashSet<String> sets = new HashSet<>();
|
||||
sets.add(s6);
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.inmind.set02;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
/*
|
||||
HashSet存储自定义对象
|
||||
注意:我们保存数据时,先判断哈希值,如果不一样直接存,如果哈希值相同,还要使用equals方法判断内容
|
||||
是否相同,如果相同,就不存,不同则保存,所以必须重写hashCode和equals
|
||||
*/
|
||||
public class HashSetDemo08 {
|
||||
public static void main(String[] args) {
|
||||
Student s1 = new Student("刘备1", 20);
|
||||
Student s2 = new Student("刘备2", 19);
|
||||
Student s3 = new Student("刘备3", 21);
|
||||
Student s4 = new Student("刘备3", 21);
|
||||
Student s5 = new Student("刘备3", 21);
|
||||
HashSet<Student> sets = new HashSet<>();
|
||||
sets.add(s3);
|
||||
sets.add(s2);
|
||||
sets.add(s1);
|
||||
sets.add(s4);
|
||||
sets.add(s5);
|
||||
System.out.println(sets);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,14 @@ public class Student {
|
||||
this.age = age;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Student{" +
|
||||
"name='" + name + '\'' +
|
||||
", age=" + age +
|
||||
'}';
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (o == null || getClass() != o.getClass()) return false;
|
||||
|
||||
Reference in New Issue
Block a user