gpt4 book ai didi

java - 对于整数元组来说,什么是好的哈希函数?

转载 作者:行者123 更新时间:2023-12-01 16:38:52 25 4
gpt4 key购买 nike

我有这门课...

public class StartStopTouple {

public int iStart;
public int iStop;
public int iHashCode;

public StartStopTouple(String start, String stop) {
this.iStart = Integer.parseInt(start);
this.iStop = Integer.parseInt(stop);
}

@Override
public boolean equals(Object theObject) {

// check if 'theObject' is null
if (theObject == null) {
return false;
}
// check if 'theObject' is a reference to 'this' StartStopTouple... essentially they are the same Object
if (this == theObject) {
return true;
}

// check if 'theObject' is of the correct type as 'this' StartStopTouple
if (!(theObject instanceof StartStopTouple)) {
return false;
}

// cast 'theObject' to the correct type: StartStopTouple
StartStopTouple theSST = (StartStopTouple) theObject;

// check if the (start,stop) pairs match, then the 'theObject' is equal to 'this' Object
if (this.iStart == theSST.iStart && this.iStop == theSST.iStop) {
return true;
} else {
return false;
}
} // equal() end

@Override
public int hashCode() {
return iHashCode;
}
}

...并且仅当一个对象中的 iStartiStop 等于 iStart 时,我才定义此类对象之间的相等性iStop 在另一个对象中。

因此,既然我已经重写了 equals(),我需要重写 hashCode() 但我不确定如何为此类定义一个好的哈希函数。使用 iStartiStop 为此类创建哈希码的好方法是什么?

最佳答案

我很想使用这个,特别是因为你要记住它:

Long.valueOf((((long) iStart) << 32) | istop)).hashcode();

关于java - 对于整数元组来说,什么是好的哈希函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6246861/

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