老师帮忙看下这个问题!
public class Student {
private String name;
private int stuld;//学号
private float score;//成绩
//构造方法
public Student(String name, int stuld, float score) {
super();
this.name = name;
this.stuld = stuld;
this.score = score;
}
//getter 和 setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getStuld() {
return stuld;
}
public void setStuld(int stuld) {
this.stuld = stuld;
}
public float getScore() {
return score;
}
public void setScore(float score) {
this.score = score;
}
@Override
public String toString(){
return "[学号:" + stuld + ", 姓名:" + name + ", 成绩:"
+ score + "]";
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((name == null) ? 0 : name.hashCode());
result = prime * result + stuld;
return result;
}
@Override
public boolean equals(Object obj) {
//判断对象是否相等,相等则返回true,不用继续比较属性了
if(this==obj){
return true;
}
//判断obj是否是Student类的对象
if(obj.getClass()==Student.class){
Student stu = (Student)obj;
return stu.getName().equals(name) && stu.getStuld()==stuld;
}
return false;
}
}
public class StudentTest {
public static void main(String[] args) {
//定义三个Student类的对象及一个HashSet类的对象
Student stu1 = new Student("William", 3, 65.0f);
Student stu2 = new Student("Tom", 1, 87.0f);
Student stu3 = new Student("Lucy", 2, 95.0f);
Set set = new HashSet();
//将Student类的对象添加到集合中
set.add(stu1);
set.add(stu2);
set.add(stu3);
//使用迭代器显示Student类的对象中的内容
Iterator it = set.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
//添加重复元素
Student stu4 = new Student("Tom", 2, 88.0f);
set.add(stu4);
it = set.iterator();
System.out.println();
System.out.println("添加重复元素后的内容:");
while(it.hasNext()){
System.out.println(it.next());
}
}
}我的代码是这样的,但是得到的结果还是不对:
添加重复元素后的内容:
[学号:2, 姓名:Tom, 成绩:88.0]
[学号:1, 姓名:Tom, 成绩:87.0]
[学号:2, 姓名:Lucy, 成绩:95.0]
[学号:3, 姓名:William, 成绩:65.0]
是否应该只要学号相同都不能添加元素?
32
收起
正在回答 回答被采纳积分+1
1回答
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星