gpt4 book ai didi

java - 将 map 与集契约(Contract)步的最佳复杂度

转载 作者:搜寻专家 更新时间:2023-11-01 08:32:02 25 4
gpt4 key购买 nike

我有以下问题,我想要一个合适的解决方案。

我有一个 HashMap,其中包含一些 String(email) 和 object(Person) 形式的对象。
此 map 通过方法 updatePersonList(Collection list) 通过集合填充,如下所述:
每次通过上述方法接收到新集合时, map 基本上会将集合中的所有元素添加到 map 中。这就是 map 所需要的,最新的 Collection 。不在集合中的内容应从 map 中丢弃。

现在,我想知道如何有效地更新 map ,因为从上面可以看出,可能有以下情况:
1. 有些对象在 map 和集合中都可以找到,因此只保留集合中的新对象,而不是全部。
2. 在 map 中但不在集合中的对象应该被移除。

就复杂性而言,最佳解决方案是什么?
经过一番调查后,我从 map 中删除了所有对象,并从集合中添加了对象。如果有人知道更好的东西,如果可以共享就更好了。

最佳答案

你永远不会比 O(n+m) 更好,其中 n 是你的 Collection 的大小m 是你的 Map 的大小因为您总是需要至少阅读这两本书。

所以在O-表示法中你可以简单地擦掉洞Map并创建一个新的。

但实际上常量可能并不是那么不重要,您可能还想减少垃圾回收。在这种情况下,迭代两者并仅从 Map 中删除所需的条目并将新元素从 Collection 添加到 Map 可能是有意义的。

但只有分析才能告诉您您是否为此付出了任何收获。

关于java - 将 map 与集契约(Contract)步的最佳复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39703102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com