Биективная коллекция одного типа

Существуют ли биективные структуры данных, которые используют только один тип, такой, что если a -> b затем b -> a где а и б одного типа? Я смотрел на BiMap из гуавы и BidiMap Apache Commons, но оба требуют получения обратной карты для проверки обратных отображений, тогда как я хотел бы, чтобы это не имело значения. Если в существующей коллекции нет ни одного, подойдет ли такой простой класс, или есть какие-то проблемы с этим:

public class BiHashMap<T> extends HashMap<T, T> {

    @Override
    public T put(T key1, T key2) {
        T removed = remove(key1);
        remove(key2);
        super.put(key1, key2);
        super.put(key2, key1);
        return removed;
    }

    @Override
    public T remove(Object key) {
        T mapped = super.remove(key);
        super.remove(mapped);
        return mapped;
    }

}

0 ответов

Другие вопросы по тегам