所以我認爲我可以使用HashMap,但它不起作用,因爲第一個鍵不會是唯一的 - 數據集中獨一無二的是密鑰1和密鑰2的組合。需要一些像<key(不唯一)<key, double>>的ds - 不確定要使用什麼
我想過將密鑰串聯成一個字符串來強制唯一性,我認爲這應該起作用,但我想確認是否存在「以任何其他方式。需要明確的是,我所期待的一種數據結構,我能...
- 查找第一個關鍵
- 查找第二個關鍵
- 訪問存儲雙
這在嵌套的HashMap中工作,但由於第一個鍵不會是唯一的,所以它會在新的第二個鍵上更新,在下一個迭代中雙鍵更新。
從搜索中,似乎有一個建議是從Apache的庫中使用Multimap,但我不想在訪問第一個鍵時返回一個列表。我最終只想通過訪問第一個鍵然後第二個鍵來獲得雙倍。
有什麼建議嗎?或者我應該試着讓串聯工作?
示例代碼
if(map.get(first[1]) != null &&
map.get(first[1]).get(second[1]) != null) {
HashMap<String, Double> inner = map.get(first[1]);
inner.put(second[1], inner.get(second[1]) + 1.0);
} else {
map.put(first[1], new HashMap<>());
map.get(first[1]).put(second[1], 1.0);
}
的,檢查是不是確有必要 - 應該只是第二個條件
你說的是雙倍的,但是那張圖保存了整數,並且存在一些問題。您將第一個鍵(用於外部映射)放入內部映射中,並且如果外部映射已經具有一個,則插入一個新的HashMap,因爲內部映射沒有第二個鍵,因此失去了所有先前的信息。 –
對不起,這些都是拼寫錯誤。雙/整數,或者沒問題。最終,只是試圖更新和訪問值。第一[1] inner.put應該肯定是第二[1]。 – cpd1
還有一些你沒有提到的東西。看起來你並不是想插入一個特定的值,而是增加一個計數器? –