次のようなマップがありますHashMap<Person, List<Items>>
。リスト内のいくつかのアイテムを削除したいのですが、削除したい特定のアイテムが別のリストに保存されています。この他のリストのアイテムと一致するマップ内のリストアイテムを最も効率的な方法で削除するにはどうすればよいですか?
質問する
341 次
3 に答える
1
List はすでにメソッドを提供しています: List.removeAll(Collection<?> collection)
.
もちろん、LinkedList
このシナリオでは、要素の削除は O(1) 操作であり、 の場合は O(n) であるため、おそらく a を使用する方が望ましいでしょうArrayList
。
于 2013-05-22T09:21:42.023 に答える
1
HashMap<Person, List<Items>> map = // Your map
for(Person p:map.keySet()) {
map.get(p).removeAll(removeList);
}
これはうまくいくはずです。
于 2013-05-22T09:21:46.850 に答える