簡単な入れ子構造を扱う #12

SchoolやGradeはLinkedHashMapを利用したコンテナ要素の管理をおこなっている。この機能を取り出す。

school/SetContainer.java
package school;

import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashMap;

abstract class SetContainer<T> implements Iterable<T> {
    private LinkedHashMap<String, T> elements = new LinkedHashMap<String, T>();

    SetContainer() {
    }

    T put(String name, T element) {
        return elements.put(name, element);
    }

    T get(String name) {
        return elements.get(name);
    }

    public Iterator<T> iterator() {
        return Collections.unmodifiableCollection(elements.values()).iterator();
    }
}