1

次のようなマップがありますHashMap<Person, List<Items>>。リスト内のいくつかのアイテムを削除したいのですが、削除したい特定のアイテムが別のリストに保存されています。この他のリストのアイテムと一致するマップ内のリストアイテムを最も効率的な方法で削除するにはどうすればよいですか?

4

3 に答える 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 に答える