Java-HashSet的实例-学生信息管理

示例代码:



///实体类
package JavaReview.src;

public class StudentEntity {
    private int studentId;
    private String name;
    private String gender;
    private String adress;

    public StudentEntity(int studentId, String name, String gender, String adress) {
        this.studentId = studentId;
        this.name = name;
        this.gender = gender;
        this.adress = adress;
    }

    public int getStudentId() {
        return studentId;
    }

    public void setStudentId(int studentId) {
        this.studentId = studentId;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getAdress() {
        return adress;
    }

    public void setAdress(String adress) {
        this.adress = adress;
    }

    @Override
    public String toString() {
        return "{" +
                "学号:" + studentId +
                ", 姓名:" + name +
                ", 性别:" + gender  +
                ", 家庭住址:" + adress  +
                '}';
    }

    //重写hashCode(),分组
    public int hashCode(){
        return this.studentId;
    }

    //重写equals()去重
    public boolean equals(Object obj){
        if(obj==this)
            return true;
 /*       //1. 比较id第一种方法,使用instanceOf();先看传入的obj是不是实体类的对象,
        //      如果是就强制转换为实体类的类型,然后返回比较id的结果
        if( obj instanceof  StudentEntity){
          StudentEntity stu_obj =(StudentEntity) obj;
          return stu_obj.getStudentId() == this.studentId;
        }

  */
        //2. 比较id第二种方法,使用反射机制,判断obj所在的类是不是实体类
        //      如果是就强制转换为实体类的类型,然后返回比较id的结果
        if(obj.getClass() == StudentEntity.class){
            StudentEntity stu_obj =(StudentEntity) obj;
            return stu_obj.getStudentId() == this.studentId;
        }
            return false;
    }
}


///操作类
package JavaReview.src;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class StudentOperator {
    public static void main(String[] args) {
        //初始化
        StudentEntity stu1= new StudentEntity(01,"张三","男","河北石家庄");
        StudentEntity stu3= new StudentEntity(03,"李四","女","河南驻马店");
        StudentEntity stu2= new StudentEntity(02,"王五","男","北京五道口");
        StudentEntity stu4= new StudentEntity(01,"翠花","女","河北石家庄");

        //创建集合并添加元素
        Set hashSet = new HashSet();
        hashSet.add(stu1);
        hashSet.add(stu2);
        hashSet.add(stu3);
        hashSet.add(stu4);

        //1. foreach循环 遍历hashSet
        for (Object obj: hashSet) {
            System.out.println(obj);
        }
        System.out.println("=================");
        //2. 迭代器遍历 hashSet
        Iterator iterator = hashSet.iterator();
        while(iterator.hasNext()){
            System.out.println(iterator.next());
        }
        System.out.println("=================");

        //3.直接打印输出hashSet
        System.out.println(hashSet);

        //4. 打印出特定的信息
        for (Object obj: hashSet) {

            StudentEntity studentEntity =(StudentEntity) obj;

            System.out.print("姓名: "+studentEntity.getName()+" ");
            System.out.println("家庭住址: "+studentEntity.getAdress());

        System.out.println("=================");
        
        //5.查找特定信息-第一种-根据实体类的实例对象调用contains()
 /*       if(hashSet.contains(stu1)){
            System.out.println("找到了");
            System.out.println(stu1);
        }else{
            System.out.println("没找到");
        }
    }

  */
        ///5.查找特定信息-第二种-根据实体类的个别元素
        String stuName = "李四";
        boolean flag =false;
        String result =null;

        for (Object obj: hashSet) {
            StudentEntity studentEntity =(StudentEntity) obj;
            if(studentEntity.getName().equals(stuName)){
                flag=true;
                result = studentEntity.toString();
            }else{
                flag=false;
            }
        }
        if(flag){
            System.out.println("找到了!");
            System.out.println(result);
        }else{
            System.out.println("没找到!");
        }
        }

        }
    }
}
  • 执行结果
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值