JDK源碼閱讀-------自學筆記(二十六)(java.util.Map 自定義講解)

一、簡介

  • Map就是用來存儲“鍵(key)-值(value)”對的.
  • 通過鍵尋找value,所以鍵不能重複.
  • 數組的本質也是一種鍵值對,區別就是索引一般是數字,而Map的Key可以是任意對象(字符串,數字),相當於把數組的索引範圍擴的更大,使用更方便.
  • 實際開發中較爲常用.

二、Map的常用方法實例

  • (1)存儲數據(V put(K key, V value))


        Map<Integer,String> map = new HashMap<>(16);

        map.put(1,"a");
        map.put(2,"b");
        map.put(3,"c");
        map.put(4,"d");
        map.put(5,"e");
        map.put(6,"f");
        map.put(7,"g");
        map.put(8,"h");
        map.put(9,"i");


  • (2)取出數據(V get(Object key))


        String s = map.get(1);
        System.out.println(s);
  

  • (3)添加對象操作


import java.util.HashMap;
import java.util.Map;

/**
 * @author liuyangos8888
 */
public class MapHasObject {

    public static void main(String[] args) {

        Employee e1 = new Employee(1001, "張三", 50000);
        Employee e2 = new Employee(1002, "李四", 5000);
        Employee e3 = new Employee(1003, "龍五", 6000);
        Employee e4 = new Employee(1001, "五六", 7000);


        Map<Integer, Employee> map = new HashMap<>();


        map.put(1001, e1);
        map.put(1002, e2);
        map.put(1003, e3);
        map.put(1001, e4);

        Employee emp = map.get(1001);

        System.out.println(emp.getEmployeeName());

        System.out.println(map);
    }


}


/**
 * 新建職員對象
 */
class Employee {

    /**
     * 工號
     */
    private int id;

    /**
     * 姓名
     */
    private String employeeName;


    /**
     * 薪資
     */
    private double salary;


    public Employee(int id, String employeeName, double salary) {
        this.id = id;
        this.employeeName = employeeName;
        this.salary = salary;
    }

    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public int getId() {
        return id;
    }

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


    public double getSalary() {
        return salary;
    }

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

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

  

結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章