检查Java中的字典中是否存在元组键

我使用java.util.Hashtable创建了一个Java字典,其中2个字符串的字符串作为键,而int作为值.

class pair<e,f>{
  public e one;
  public f two;
}

我曾经在上述类中初始化字典:

Dictionary<pair<String, String>, Integer> dict = new Hashtable();

现在,我无法检查dict中是否存在密钥,这意味着我无法将字符串对作为dict.containsKey()方法的参数传递.

解决方法:

尝试这样的事情:

public class Pair<E, F> {
    private final E e;
    private final F f;
    public Pair(E e, F f) {
        this.e = e;
        this.f = f;
    }

    public E getE() {
        return e;
    }
    public F getF() {
        return f;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Pair<E,F> other = (Pair<E,F>) obj;
        if (!this.e.equals(other.getE())) {
           return false;
        }
        if (!this.f.equals(other.getF())) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        hash = 53 * e.hashCode() + f.hashCode();
        return hash;
    }
}

我假设e和f不为null.如果可以为null,则必须在if(e.equals(other.getE()))之前检查e == null是否阻止NPE.

进一步说明:

>在几乎所有情况下,您都应将班级成员设为私人
(静态成员除外).
> Proper Java convention is to have class names in CapitalizedWords.
> Generic type parameters should be a single upper-case character.

上一篇:给出提示的问题


下一篇:可变宽度大小的Python峰值检测