作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在 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/
我想在 Guava 提供的 MultiMap 中添加、删除和替换值。 我目前这样做是为了增加值(value).. static Multimap myMultimap; myMultimap = A
我是一名优秀的程序员,十分优秀!