gpt4 book ai didi

java - 用具有两个泛型字段的类覆盖 hashCode

转载 作者:搜寻专家 更新时间:2023-10-31 08:14:58 26 4
gpt4 key购买 nike

我正在实现一个类 Pair 以将其用作 HashMap 的具有两个值的键。我使用泛型来保持字段变量的类型。我设法编写了大部分代码:

public class Pair<L, R>
{
private L left;
private R right;


Pair(L left, R right)
{
this.left = left;
this.right = right;
}


public L getLeft()
{
return left;
}


public R getRight()
{
return right;
}


public void setLeft(L left)
{
this.left = left;
}


public void setRight(R right)
{
this.right = right;
}


@Override
public boolean equals(Object obj)
{
if (obj instanceof Pair< ? , ? >)
{
Pair< ? , ? > pair = (Pair< ? , ? >)obj;
return left.equals(pair.getLeft()) && right.equals(pair.getRight());
}
return false;
}

@Override
public String toString()
{
return "Pair " + Integer.toHexString(hashCode()) + ": (" + left.toString() + ", " + right.toString()
+ ")";
}
}

我的问题是创建适当的 hashCode 方法,它肯定会为相同的对象提供相同的哈希码,为不同的对象提供不同的哈希码。一些提示?

最佳答案

不要重新发明轮子。

只需使用 return Objects.hash(left, right);

关于java - 用具有两个泛型字段的类覆盖 hashCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433184/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com