6-1、初認識Java Map


リスト集合については前述したが,集合中の結果を1つの条件で調べる必要がある場合に非常に面倒であることが分かった.Mapはキー値ペアが格納されているため、キーが一意であるため、この問題を解決することができます.したがって、データベース・テーブルにプライマリ・キー(インデックスとしても理解できる)を追加するのと少し似ています.リストはaddメソッドでデータを追加し、Mapはputメソッドで対応するプライマリ・キー値を増加させて処理します.取得はgetで対応するキーに結果を与える価値があります.
ここで簡単な例を示します
クラスの準備
class Stu implements Comparator<Stu> {
    private String name;
    private int age;

    public Stu() {
    }

    public Stu(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public int compare(Stu stu, Stu t1) {
        return stu.getAge()-t1.getAge();
    }

    @Override
    public String toString() {
        return "Stu{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Stu stu = (Stu) o;
        return age == stu.age &&
                name.equals(stu.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }
}

インプリメンテーション
Map<String, Stu> st = new HashMap<>();
        st.put("XH001", new Stu(" ", 12));
        st.put("XH002", new Stu(" ", 15));
        st.put("XH003", new Stu(" ", 22));
        st.put("XH004", new Stu(" ", 16));

        Stu stu=st.get("XH002");
        System.out.println(stu.getName());

一言で言えばMapは1つの値をインデックスとする集合であり,インデックスは繰り返すことができず,1つのインデックス値を繰り返すと元の値が置き換えられる.