添加重复数据

添加重复数据

1
package com.imooc.test;<br><br>public class Student {<br>   private String name;<br>    private int stuld;<br>  private float score;<br><br>    public Student() {<br><br>  }<br><br>   public Student(String name, int stuld, float score) {<br>       this.setName(name);<br>     this.setStuld(stuld);<br>       this.setScore(score);<br>   }<br><br>   public String getName() {<br>       return name;<br>    }<br><br>   public void setName(String name) {<br>      this.name = name;<br>   }<br><br>   public int getStuld() {<br>     return stuld;<br>   }<br><br>   public void setStuld(int stuld) {<br>       this.stuld = stuld;<br> }<br><br>   public float getScore() {<br>       return score;<br>   }<br><br>   public void setScore(float score) {<br>     this.score = score;<br> }<br><br>   @Override<br>   public int hashCode() {<br>     final int prime = 31;<br>       int result = 1;<br>     result = prime * result + ((name == null) ? 0 : name.hashCode());<br>       result = prime * result + stuld;<br>        return result;<br>  }<br><br>   @Override<br>   public boolean equals(Object obj) {<br>     if (this == obj)<br>            return true;<br>        if (obj.getClass() == Student.class) {<br>          Student student = (Student) obj;<br>            return student.getStuld() == stuld && (student.getName().equals(name));<br>     }<br>       return false;<br><br>   }<br><br>   @Override<br>   public String toString() {<br>      return "[学号:" + this.getStuld() + ", 姓名:" + this.getName() + ", 成绩:" + this.getScore() + "]";<br>   }<br><br>}<br>
1
package com.imooc.test;<br>问题描述:<br>import java.util.HashSet;<br>import java.util.Iterator;<br>import java.util.Set;<br><br>public class StudentTest {<br><br>  public static void main(String[] args) {<br>        // TODO 自动生成的方法存根<br>       Student student3 = new Student("William", 3, 65.0f);<br>        Student student1 = new Student("Tom", 1, 87.0f);<br>        Student student2 = new Student("Lucy", 2, 95.0f);<br>       Set<Student> set = new HashSet<Student>();<br>      set.add(student1);<br>      set.add(student2);<br>      set.add(student3);<br>      Iterator it = set.iterator();<br>       while (it.hasNext()) {<br>          System.out.println(it.next());<br>      }<br>       System.out.println("=========================");<br>        Student student4 = new Student("Lucy", 3, 954.0f);<br>      Student student5 = new Student("William", 3, 65.0f);<br>        set.add(student4);<br>      set.add(student5);<br>      it = set.iterator();<br>        while (it.hasNext()) {<br>          System.out.println(it.next());<br>      }<br>   }<br>}<br>

问题描述:

这个判断是否重复是当学号和姓名都重复时才进行判定重复,单独判断学号或者姓名重复怎么写

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

1、是的,理解是正确的

2、这里只需要对equals()和hashCode()方法进行删减即可,如下举例:判断姓名

http://img1.sycdn.imooc.com//climg/601b6b17090f2e4609160500.jpg

祝学习愉快~

  • 如果要是当学号重复,姓名不同时,不显示信息,姓名重复时学号不重复也不显示信息,也不显示信息,该怎么写呢老师
    2021-02-04 11:46:16
  • 同学你好,同学这里是想学号(或姓名)重复时,重复数据不进行添加显示是吗?

    如果是,按照老师上述给出的方式去修改equals()和hashCode()方法即可,如下:

    http://img1.sycdn.imooc.com//climg/601ba1f909c4abb008140871.jpg

    http://img1.sycdn.imooc.com//climg/601ba28a09af226e09340869.jpg

    祝学习愉快~

    2021-02-04 15:30:36
  • 我明白老师的意思,但这是两段程序,如果在一段程序中,怎么写同时满足这两个,就是如果要是当学号重复,姓名不同时,不显示信息,姓名重复时学号不重复也不显示信息,也不显示信息,

    2021-02-05 08:15:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码