天天看點

HashSet員工管理練習

HashSet員工管理練習

Emp類

public class Emp {
    String id;
    String name;
    double salary;

    public Emp() {
    }

    public Emp(String id, String name, double salary) {
        this.id = id;
        this.name = name;
        this.salary = salary;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    @Override
    public String toString() {
        return "Emp{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", salary=" + salary +
                '}';
    }

    //Object方法  去重要重寫hashCode()和equals()方法
    @Override
    public int hashCode() {
        return name.hashCode();//name相同
    }

    @Override
    public boolean equals(Object o) {  //Object表示set集合中已經存在的對象
        Emp emp = (Emp) o;
        return id.equals(emp.id);
    }
}
           

Manager類

public class Manager {
    HashSet<Emp> hs;

    //初始化
    {
        hs = new HashSet<>();
    }

    //增加
    void addEmp(Emp emp) {
        hs.add(emp);
    }

    //查詢所有
    List<Emp> selectAll() {
        System.out.println("所有員工資訊如下:");
        List<Emp> emps = new ArrayList<>();
        for (Emp e : hs) {
            emps.add(e);
        }
        System.out.println(emps);
        return emps;
    }

    //查詢ID
    Emp selectById(String id) {
        for (Emp e : hs) {
            if (e.getId().equals(id)) {
                System.out.println("id為" + id + "的員工資訊" + e);
                return e;
            }
        }
        return null;
    }

    //修改指定工号的員工工資
    Emp modifyById(String id, double sal) {
        Emp e = this.selectById(id);
        //判斷員工存在
        if (e != null) {
            e.setSalary(sal);
        }
        System.out.println("修改後id為" + id + "的員工資訊" + e);
        return e;
    }

    //删除員工
    void deleteById(String id) {
        Emp e = this.selectById(id);
        if (e != null) {
            hs.remove(e);
        }
        System.out.println("删除後所有員工資訊如下:");
        List<Emp> e2 =  this.selectAll();
    }
}
           

Test

public class Test {


    public static void main(String[] args) {
     
        Manager manager = new Manager();
        manager.addEmp(new Emp("5","五",1445.9));
        manager.addEmp(new Emp("4","四",2145.9));
        manager.addEmp(new Emp("3","三",1845.9));
        manager.addEmp(new Emp("2","二",145.9));
        manager.addEmp(new Emp("1","一",1345.9));

        manager.selectAll();

        manager.selectById("3");

        manager.modifyById("2",999);

        manager.deleteById("1");

    }
}