s-day03--HashSet存储自定义对象

This commit is contained in:
xx
2026-10-14 14:43:26 +08:00
parent d27881af22
commit be6aed66ba
3 changed files with 39 additions and 4 deletions
+4 -4
View File
@@ -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;