双射单一类型集合

时间:2014-03-14 12:03:06

标签: java map bijection

是否存在仅使用一种类型的双射数据结构,如果a -> b那么b -> a其中a和b属于同一类型?我查看了Guava的BiMap和Apache Commons的BidiMap,但两者都需要获取映射的反转以检查反向映射,而我希望它不重要。如果现有集合中没有一个,那么像这样的简单类是否可以解决问题,或者是否有任何问题:

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 个答案:

没有答案