我在 Java 中有一個類,它Object在 HashMap中存盤泛型型別:
private final Map<Object, NetworkMarker> packetMarker = new WeakHashMap<>();
該packet物件是非常大的,在地圖具有非常高的吞吐量,所以資料包的散列單獨占用的CPU周期的荒謬量,我很好奇,如果有可能,盡量減少這一點,或者我只是需要更好的硬體。
盡管是一個沒有包裝器的通用 Object 類,但有沒有辦法覆寫hashCode使其更高效的函式,或者可能擴展哈希圖以增強#get()方法?或者我忽略的任何其他方法!
干杯!
編輯澄清:packet未鍵入物件。它屬于Object. 它是從外部來源傳入的,因此我無法分配型別。
uj5u.com熱心網友回復:
您始終可以將其包裝在另一個快取哈希碼的類中:
class CachedHash {
public final Object cached;
private Integer hashCode;
public CachedHash(Object cached) {
this.cached = cached;
}
@Override
public boolean equals(Object o) {
return cached.equals(o);
}
@Override
public int hashCode() {
if (hashCode == null) {
hashCode = cached.hashCode();
}
return hashCode;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/395994.html
下一篇:使用帶日期的模運算子
