老师帮忙看下这个问题!
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 星