1 定义Student类,该类包含:

1)该类具有id(学号,int )和name(学生姓名,String)字段属性;

2)该类具有一个默认的无参构造方法和一个初始化各字段属性的带参的构造方法;

3)各属性字段的getXxx()setXxx()方法。

4)重写public String toString()方法,返回学生的个人信息;

5)注意:因为Student类是自定义类,将Student类的对象添加到HashSet集合对象中时,需要重写hashCode()方法和equals()方法,并规定只有姓名和学生证号都相等,则对象相等。其中计算哈希码的算法:(31 + (name == null ? 0 : name.hashCode()))*31 + id(注:nameStudent对象的姓名,idStudent对象的学生证号)

2. 编写程序将你(如果你不在以下名单中)及以下5Student类的对象放在一个HashSet集合对象中。

姓名:葛田枫    学生证号:20208001

姓名:李赛兵    学生证号:20209002

姓名:熊健柱    学生证号:20207003

姓名:余传珏    学生证号:20206002

姓名:李春凤     学生证号:20205004

要求:

以下代码框架基础上完成指定的任务:

import java.util.HashSet;

import java.util.Scanner;

import java.util.Set;

public class HashSetTask {

    public static void main(String[] args) {

       // 请在Begin-End间编写代码

       /********** Begin **********/

       // 第1步:创建集合

       // 第2步:Student类的对象添加进集合

       // 第3步:判断集合中元素个数是否大于4

       // 第5步:判断集合元素中是否含有指定(例如:姓名:刘芳萍 ,学生证号:20207073),输出提示信息

       // 第6步:当集合中不含有指定对象(如:刘芳萍:20207073)时,把该元素添加进集合

       // 第7步:移除指定对象(例如:姓名:李春凤  学生证号:20205004),并输出提示信息

       // 第8步:打印集合元素
       /********** End **********/
    }
}

【参考答案】

package demo02;

import java.util.HashSet;

public class HashSetDemo {
    public static void main(String[] args) {
        // 请在Begin-End间编写代码
//      ********** Begin **********
        // 第1步:创建集合
        HashSet<Student> hs = new HashSet<Student>();
        // 第2步:Student类的对象添加进集合
        hs.add(new Student(20208001,"葛田枫"));
        hs.add(new Student(20209002,"李赛兵"));
        hs.add(new Student(20207003,"熊健柱"));
        hs.add(new Student(20206002,"余传珏"));
        hs.add(new Student(20206002,"李春凤"));
        // 第3步:判断集合中元素个数是否大于4
        if (hs.size()>4){
            System.out.println("元素大于4");
        }
        // 第5步:判断集合元素中是否含有指定(例如:姓名:刘芳萍 ,学生证号:20207073),输出提示信息
        if (!hs.contains(new Student(20207073,"刘芳萍"))){
            System.out.println("该集合元素中没有指定元素");
        }
        // 第6步:当集合中不含有指定对象(如:刘芳萍:20207073)时,把该元素添加进集合
        System.out.println(hs.add(new Student(20207073,"刘芳萍")));
        // 第7步:移除指定对象(例如:姓名:李春凤  学生证号:20205004),并输出提示信息
        if(!hs.remove(new Student(20205004,"李春凤"))){
            System.out.println("查无此人");
        }
        // 第8步:打印集合元素
        for (Student s :hs){
            System.out.println("姓名:"+s.getName()+","+"学号:"+s.getId());
        }
//        ********** End **********
    }
}

学生类我就不创建了,你们应该都会吧。

【运行截图】