JAVA中HASHSET程序问题

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:16:50
import java.util.*;
public class HashSetTest
{
public static void main(String[] args){
HashSet hs=new HashSet();
hs.add(new Student(1,"zhangsan"));
hs.add(new Student(2,"lishi"));
hs.add(new Student(3,"wangwu"));
hs.add(new Student(1,"zhangsan"));
Iterator it=hs.iterator();
while (it.hasNext())
{System.out.println(it.next());
}
}
public class Student
{
int num;
String name;
Student(int num,String name){
this.num=num;
this.name=name;
}
public String toString(){
return "num :"+num+" name:"+name;
}
public int hashCode(){
return num*name.hashCode();
}
public boolean equals(Object o){
Student s=(Student)o;
return num==s.num&&name.equals(s.name);
}
}
}
请大家帮忙看下问题出在哪里?

import java.util.*;

public class HashSetTest {
public static void main(String[] args) {
HashSet<Student> hs = new HashSet<Student>();
hs.add(new Student(1, "zhangsan"));
hs.add(new Student(2, "lishi"));
hs.add(new Student(3, "wangwu"));
hs.add(new Student(1, "zhangsan"));
Iterator<Student> it = hs.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}

}

class Student {
private int num;
private String name;

public Student(int num, String name) {
this.num = num;
this.name = name;
}

public String toString() {
return "num :" + num + " name:" + name;
}

public int hashCode() {
return num * name.hashCode();
}

public boolean equals(Object o) {
Student s = (Student) o;
return num == s.num