程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> Java集合類之HashMap

Java集合類之HashMap

編輯:JAVA編程入門知識
package com.test;
import java.util.*;

public class Demo7_3 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Emp emp1 = new Emp("s001", "aaa", 12.3f);
        Emp emp2 = new Emp("s002", "bbb", 5.3f);
        Emp emp3 = new Emp("s003", "李逵", 52f);

        //創建一個HashMap對象
        HashMap hm = new HashMap();
        //將emp放入到hm
        hm.put("s001", emp1);
        hm.put("s002", emp2);
        //會將前面的值覆蓋,不允許k重復
        //hm.put("s002", emp3);

        hm.put("s003", emp3);

        //如果你要查找編號是s002的人
        if(hm.containsKey("s002"))//返回布爾值
        {
            System.out.println("有該員工");
            //如何取出,鍵<-->值
            Emp emp = (Emp)hm.get("s002");
            System.out.println("員工姓名是"+emp.getName());
            
        }
        else
        {
            System.out.println("沒有該員工");
        }
        
        //遍歷HashMap中所有的key和value
        //迭代器
        Iterator it = hm.keySet().iterator();
        //hasNext返回一個boolean值,看看是否還有下一個
        //HashMap取出來的是亂序的,不是按照預先的順序取出
        while(it.hasNext())
        {
            //取出key  it.next()返回的是object類型,用toString轉換成字符串
            //根據自己之前所寫的鍵值的數據類型,定義相應數據類型的變量來接收
            String key = it.next().toString();
            Emp emp = (Emp)hm.get(key);
            System.out.println("名字是"+emp.getName());
            System.out.println("薪水是"+emp.getSal());
        }
    }
}

//雇員管理類
class EmpManage {
    private ArrayList al = null;

    // 構造函數最主要的作用就是初始化成員變量
    public EmpManage() {
        al = new ArrayList();
    }

    // 加入員工
    public void addEmp(Emp emp) {
        al.add(emp);
    }

    // 根據員工號顯示該員工的相關信息
    public void showInfo(String empNo) {
        // 遍歷整個ArrayList
        for (int i = 0; i < al.size(); i++) {
            // 取出Emp對象
            Emp emp = (Emp) al.get(i);

            // 比較編號
            if (emp.getEmpNo().equals(empNo)) {
                System.out.println("找到該員工,他的信息是");
                System.out.println("編號=" + empNo);
                System.out.println("名字=" + emp.getName());
                System.out.println("工資=" + emp.getSal());
            }
        }
    }

    // 修改工資
    public void updateSal(String empNo, float newSal) {
        for (int i = 0; i < al.size(); i++) {
            Emp emp = (Emp) al.get(i);
            if (emp.getEmpNo().equals(empNo)) {
                // 修改薪水
                emp.setSal(newSal);
            }
        }
    }

    // 刪除員工
    public void delEmp(String empNo) {
        for (int i = 0; i < al.size(); i++) {
            Emp emp = (Emp) al.get(i);
            if (emp.getEmpNo().equals(empNo)) {
                // 兩種刪除方式都可以
                al.remove(i);
                // al.remove(emp);
            }
        }
    }
}

//雇員類
class Emp {

    // 學號
    private String empNo;
    private String name;
    private float sal;

    // 構造函數
    public Emp(String empNo, String name, float sal) {
        super();
        this.empNo = empNo;
        this.name = name;
        this.sal = sal;
    }

    public String getEmpNo() {
        return empNo;
    }

    public void setEmpNo(String empNo) {
        this.empNo = empNo;
    }

    public String getName() {
        return name;
    }

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

    public float getSal() {
        return sal;
    }

    public void setSal(float sal) {
        this.sal = sal;
    }

}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved