java问题,数组去掉重复的元素

有个Student类型的数组。Student[] sArray = Student[100];
Student的属性有学号num,姓名name。比如这个sArray里面含有相同的学生(即学号和姓名都相同)。
如何去掉数组相同的元素
HashSet<Student> set = new HashSet<Student>();
for(Student obj: s){
set.add(obj);
}
Student[] s2 = set.toArray(new Student[set.size()]);
for(int j=0;j<s2.length;j++)
{
System.out.print(s2[j].name+s2[j].id);

}

//我是这么写的,为什么最后还是输出了三个元素(原来的数组s长度为三,有两个重复的元素)

第1个回答  2013-11-19
public static void main(String[] args) {
Student s1 = new Student("a",1);
Student s2 = new Student("a",2);
Student s3 = new Student("a",1);
Student s4 = new Student("a",2);
Student s6 = new Student("a",1);
Student s5 = new Student("a",2);
Student s7 = new Student("a",1);
Student s8 = new Student("a",2);
Student s9 = new Student("a",1);
Student[] stu = {s1,s2,s3,s4,s5,s6,s7,s8,s9,s1,s1,s2};
List<Student> list = Arrays.asList(stu);
System.out.println(list.size());
Set<Student> set = new HashSet<Student>();
set.addAll(list);
System.out.println(set.size());
List<Student> list1 = new ArrayList<Student>();
list1.addAll(set);
System.out.println(list1.size());
Student[] student = list1.toArray(new Student[list1.size()]);
System.out.println(student.length);

}

public class Student {
public String name;
public Integer number;
public Student(String name,Integer number){
this.name = name;
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getNumber() {
return number;
}
public void setNumber(Integer number) {
this.number = number;
}
}
相似回答