Биективная коллекция одного типа
Существуют ли биективные структуры данных, которые используют только один тип, такой, что если 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;
}
}