gpt4 book ai didi

java - 从 TreeMap 中排除特定值的有效方法

转载 作者:行者123 更新时间:2023-11-29 07:42:50 24 4
gpt4 key购买 nike

我正在努力为我的应用实现最佳性能。在代码中的某个时刻,我想从映射中检索除对应于特定键的值之外的所有值。

现在,如果我想检索所有值,我会使用这个:

map.values();

并且假设 TreeMap 类是高效创建的,“values()”方法只是返回一个引用,所以 --> O(1)。

在我的例子中,虽然我想排除特定键的值。这段代码:

Set<String> set = new ...
for (String key: map.keySet()) {
if (!key.equals("badKey")) {
set.add(map.get(key));
}
}

复杂度为 N*(logN),比最初的 O(1) 慢得多,这是由于只需要删除一个值造成的。


有更好的方法吗?

最佳答案

您可以使用entrySet 代替keySet。这样,找出给定值是否属于您希望排除的键将花费 O(1)。

您可以在任何需要迭代值的时候调用 entrySet,并在迭代时排除坏键。这会给您带来与遍历 values() 集合相同的复杂性。

关于java - 从 TreeMap 中排除特定值的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28525991/

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