私はHashMapを持っていてHashMap<Integer, List<String>> storeR
、それは..を保存しますが、 ?"22,name1,name2"
から削除する方法はありますか?22から名前1だけを削除したいのですが、どうすればよいですか。ありがとうございました。name1
22
3 に答える
4
マップからリストを取得し、削除したい要素を削除します。
storeR.get(22).remove("name1");
22
マップにキーがない場合、またはその値が である場合、null
これは をスローしNullPointerException
ます。
于 2013-02-16T15:54:38.937 に答える
3
これに関してあなたが尋ねた質問を考えると、サードパーティのライブラリを使用する方が良いでしょう.GuavaにはMultimap
さまざまな実装とのインターフェースがあります-おそらくArrayListMultimap
.
その後、次のように書くことができます:
multimap.remove(22, "name1");
すべての作業を手動で行いたい場合は、マップを呼び出してリストget
を返し、リストを呼び出しremove
て値を削除できます。ただし、最後の値を削除した場合は、キーも完全に削除するかどうかを検討する必要があります。もちろん、キーがマップに既に存在するかどうかがわからない場合は、条件付きでのみ呼び出す必要がありますremove
...
于 2013-02-16T15:56:11.950 に答える
0
GuavaのArrayListMultimapは、このケース向けに設計されています。
参照: http ://code.google.com/p/guava-libraries/wiki/NewCollectionTypesExplained#Multimap
于 2013-02-16T15:56:48.290 に答える