gpt4 book ai didi

java - 如何使用 Guava Multimap 的 replaceValues 方法?

转载 作者:行者123 更新时间:2023-11-30 05:53:48 24 4
gpt4 key购买 nike

我想在 Guava 提供的 MultiMap 中添加、删除和替换值。

我目前这样做是为了增加值(value)..

static Multimap<Integer, Float> myMultimap;
myMultimap = ArrayListMultimap.create();
myMultimap.put(1, (float)4.3);
myMultimap.put(2, (float)4.9);
myMultimap.put(1, (float)4.7);
myMultimap.put(1, (float)4.5);

使用 Guava 库可以更轻松地删除值。

myMultimap.remove(1,(float)4.7);

但是如何使用 replaceValues 方法呢?

我是这个意思

 myMultimap.replaceValues(1, (float)4.3);

假设我想用新值 5.99 替换值 4.3,我应该怎么做,该方法需要一些 Iterable 函数,但我不确定如何实现它..

这是错误..

The method replaceValues(Integer, Iterable) in the type Multimap is not applicable for the arguments (int, float)

最佳答案

Multimap.replaceValues取一个值集合来替换给定键的所有 现有值。从 JavaDoc 看来,您需要使用 remove,然后使用 put

如果映射是可修改的,您可以使用 get 获取映射到单个键的值集合的可修改 View ,但返回的 View 是普通的 Collection没有原子替换方法。您始终可以创建自己的辅助方法。请注意,此方法不是线程安全的。

public static <K,V> boolean replaceValue(Multimap<K,V> map, K key, V oldValue, V newValue) {
if (map.remove(key, oldValue)) {
map.put(key, newValue);
return true;
}
return false;
}

关于java - 如何使用 Guava Multimap 的 replaceValues 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10170656/

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