私はHashMapを持っていてHashMap<Integer, List<String>> storeR、それは..を保存しますが、 ?"22,name1,name2"から削除する方法はありますか?22から名前1だけを削除したいのですが、どうすればよいですか。ありがとうございました。name122
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 に答える