diff --git a/s-day03/src/com/inmind/set02/HashDemo07.java b/s-day03/src/com/inmind/set02/HashDemo07.java index 90819bc..2b31c05 100644 --- a/s-day03/src/com/inmind/set02/HashDemo07.java +++ b/s-day03/src/com/inmind/set02/HashDemo07.java @@ -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 sets = new HashSet<>(); sets.add(s6); diff --git a/s-day03/src/com/inmind/set02/HashSetDemo08.java b/s-day03/src/com/inmind/set02/HashSetDemo08.java new file mode 100644 index 0000000..e08044c --- /dev/null +++ b/s-day03/src/com/inmind/set02/HashSetDemo08.java @@ -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 sets = new HashSet<>(); + sets.add(s3); + sets.add(s2); + sets.add(s1); + sets.add(s4); + sets.add(s5); + System.out.println(sets); + + } +} diff --git a/s-day03/src/com/inmind/set02/Student.java b/s-day03/src/com/inmind/set02/Student.java index a67dc29..c5d40e7 100644 --- a/s-day03/src/com/inmind/set02/Student.java +++ b/s-day03/src/com/inmind/set02/Student.java @@ -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;