我在嘗試創建HashSet時遇到問題。在我的代碼中,我創建了43個不同的HashSet,其中1 - 138個條目沒有任何問題。當我嘗試用13個條目「JAVA」創建我的第44個HashSet時,請做一些奇怪的事情!HashMap索引衝突,同時rezise
添加最後一個「新」條目時。 HashMap.transfer(Entry [] newTable)給我的「新」和「舊」條目相同的索引號。之後,我的新條目被舊條目覆蓋。這裏有人已經面臨同樣的問題嗎?
嗯,我使用一個HashSet:
Set<BaseConfigSet> baseConfigSets = new HashSet<BaseConfigSet>();
BaseConfigSet baseConfigSet = null;
...
baseConfigSet = new BaseConfigSet(next.getBaseConfigId(), interval, next.getValue(), next.getAccountId(),
Section.forString(baseConfig.getSection()), baseConfig.getName(),
baseConfig.getDescription(), DataType.forString(baseConfig.getDataType()));
baseConfigSets.add(baseConfigSet);
BaseConfigSet使用龍目島annoations產生類似的hashCode(一些代碼),等於()...我的哈希包含一個 「baseConfigId」 int和「間隔」爲org.joda.time.Interval:
@Getter
@EqualsAndHashCode(of = { "baseConfigId", "interval" })
@ToString(of={"baseConfigId", "value"})
public static class BaseConfigSet {
private Integer baseConfigId;
private Interval interval;
@Setter
private String value;
private Integer accountId;
private Section section;
private String sectionName;
private String description;
private DataType dataType;
...
代碼和錯誤日誌plz – Kun
如果您不添加任何代碼,我們真的幫不了你。 – Manu
究竟是什麼問題?當您爲現有密鑰添加新值時,HashMaps *預計*僅保留最後一個值。除非我們看到代碼,否則我們無法真正理解什麼(如果有的話)出錯 – vefthym