私はこれにHashMapを使うことができると思ったが、最初のキーは一意ではない - データセット内でユニークなのは、キー1とキー2の組み合わせです。dsのために<key(ユニークではない)<key, double>>のようなものが必要 - 何を使うべきかわからない
キーを文字列に連結して一意性を強制することを考えましたが、私はうまくいくはずですが、他の方法ではありません。明確にするために、私は私が...
- が
- 最初のキーを検索できなデータ構造を期待していたダブル
これを格納されている第2の鍵
検索すると、ApacheのライブラリからMultimapを使用することが推奨されるようですが、最初のキーにアクセスするときにリストを返すことは望ましくありません。私は最終的には最初のキーに続いて2番目のキーにアクセスすることでダブルを欲しがっています。
提案がありますか?または、連結を取得しようとする必要がありますか?
サンプルコード
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);
}
チェック実際には必要ではありませんが - ちょうどあなたがマルチマップを望んでいない第二の条件
あなたは二重だと言っていますが、そのマップには整数が入っています。問題がいくつかあります。最初のキー(外側のマップ用)を内側のマップに配置しています。内側のマップに2番目のキーがないため、以前の情報がすべて失われているだけで、外側のマップに既に新しいHashMapが挿入されている場合は、新しいHashMapを挿入します。 –
申し訳ありませんが、そのすべてがタイプミスでした。 Double/Integerのいずれかが問題ありません。最終的には、値を更新してアクセスしようとするだけです。最初の[1] inner.putは間違いなく2番目であったはずです[1]。 – cpd1
あなたが言及しなかった何かがあります。特定の値を挿入しようとしているのではなく、カウンタをインクリメントするように見えますか? –