私はHashMapとHastableをObjectのListとしてキーとして使用しようとしています。 下のコードは機能しません。 私はこのコードをデバッグするとき、私はHashMapのオブジェクトに新しいアイテムを入れるとどうなりますかTestMap4オブジェクトに3つの項目を持つだけで1Java - リスト<>をキーとしたHashMapの使用
List<String> lst = new ArrayList<>();
lst.add("Hello");
lst.add("World");
Map<List<String>, Integer> testMap4 = new HashMap<List<String>, Integer>();
testMap4.put(lst, 1);
testMap4.put(lst, 2);
testMap4.put(lst, 5);
がある期待それはなぜ機能しないのですか?
以下の新しい例でも同じ結果が得られます。私は2列の唯一の1文字を変更する場合
List<String> lst = new ArrayList<>();
lst.add("Hello");
lst.add("World");
List<String> lst2 = new ArrayList<>();
lst2.add("Hello");
lst2.add("World");
List<String> lst3 = new ArrayList<>();
lst3.add("Hello");
lst3.add("World");
Map<List<String>, Integer> testMap4 = new HashMap<List<String>, Integer>();
testMap4.put(lst,1);
testMap4.put(lst2,2);
testMap4.put(lst3,5);
(各リストは、同じ2文字列をcountains)、これはOKです
マップのキー/値の部分を誤解しています(https://www.tutorialspoint.com/java/java_hashmap_class.htm)。マップは1つの値しか持てません。つまり、1つの固有キーに関連付けられています。同じキーで値を入力するので、既存の値を毎回変更します。 – JohnnyAW
数字1、2、5のメーリングは何ですか?キー1,2,5に対してリスト(同じリスト)を入れようとしていますか?そうであれば、あなたのキーと値が間違った方法で返されます –
各項目のリストのハッシュコードを変更する方法はありますか?一意であると特定するには? – ManWithNoName