- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有两个 HashMap :
HashMap <String, Integer> h1;
h1.put("hi", 30);
h1.put("hi2",20);
h1.put("hi3",10);
h1.put("hi4",20);
HashMap <String, Integer> h2;
h2.put("hi", 20);
h2.put("hi2", 20);
h2.put("hi3", 20);
h2.put("hi4", 20);
我的问题是,如果我执行以下操作
h2.putAll(h1);
如何将 h2 的值更新为总和,而不是仅仅覆盖它?这就是我想要的
[{"hi"=50}]
[{"hi2"=40}]
[{"hi3"=30}]
[{"hi4"=40}]
代替这个
[{"hi"=30}]
[{"hi2"=20}]
[{"hi3"=10}]
[{"hi4"=20}]
注意:不允许使用函数构造(包括 lambda 表达式)和外部库
最佳答案
您可以使用 merge方法:
h1.forEach((key, value) -> h2.merge( key, value, Integer::sum));
System.out.println(h2);
老办法:
for(String key : h1.keySet()){
Integer v1 = h1.get(key);
Integer v2 = h2.get(key);
h2.put(key, (v2 == null) ? v1 : v1 + v2);
}
System.out.println(h2);
关于java - 我怎样才能不通过 putAll() 覆盖值而是添加到当前值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66844970/
假设我有两个 HashMap : HashMap h1; h1.put("hi", 30); h1.put("hi2",20); h1.put("hi3",10); h1.put("hi4",20)
我正在使用 infinispan 7.2.5 版本来制作内存缓存。为了访问该缓存,我正在使用 Hotrod。所以我有在集群模式下运行的 hotrod 服务器,并且多个客户端可以使用 hotrod 客户
我得到了这个代码片段: public static void main(String[] args){ Map> map = new HashMap<>(); Set set = ne
问题 如果我显式循环遍历 HashMap A 中的每个元素并将每个元素“放入” HashMap B 中,那么我就没有问题。但是,如果由于某种原因尝试调用 A.putAll(B),B 最终会为 null
假设我有两个 HashMap : HashMap h1; h1.put("hi", 30); h1.put("hi2",20); h1.put("hi3",10); h1.put("hi4",20)
在我的代码中, SortedMap subMap; subMap = (db.getDataMap()).tailMap(previousServer)
HashMap map= new HashMap(); System.out.println(map.put(101,"john"));//null System.out.println(map.pu
我对 putAll() method 有疑问用于脚本的谷歌缓存。该方法似乎有效,但仅适用于前(~100)对 在我的脚本中,我必须缓存大量行(~2500 * 3),每一行都有不同的键,我发现缓存服务出现
文档说 ehcache 是线程安全的。据我所知,如果 thread A 更新缓存,这些更新将始终对其他线程可见。 但我想知道 putAll 操作是否是线程安全的和原子的?比如说,我想通过调用 putA
ConcurrentHashMap.putAll(Map) 方法应该是原子的吗? 我在文档中找不到它,ConcurrentMap 接口(interface)中也没有提到它,所以我猜答案是否定的。我要求
当我使用 .putAll() 时,另一个 .putAll() 会覆盖 map 的内容吗?我的 map 会包含 SomeOfMyObjects 和 SomeOfMyObjects 吗? Map blah
我有这个简单的方法,它是我的 CustomBaseAdapter 的一部分 public void setDays(Map sortedDays) { days.clea
有人知道为什么 java 的 BlockingQueue 没有 putAll 方法吗?这样的方法有问题吗?无需完全重新实现 BlockingQueue 即可解决此问题的任何好方法? 最佳答案 for
我有一个将字符映射到整数的 HashMap。为了按值对其进行排序,我编写了比较器并使用 TreeMap。但我缺少值(value)。我检查了字符串“tree”。每个循环之后的 map “字符”看起来像
使用 Guava 的 Multimap 解决泛型问题 class Foo{ ... private Multimap stuff; ... public void ov
我在使用 Map.putAll() 时遇到了一些困难。它不是更新/添加特定记录到我的主 map ,而是覆盖条目: ConcurrentMap> cache = new ConcurrentHash
我想知道在 SparseArray 类的 HashMap 类上是否有与 putAll 方法等效的方法? 我很困惑是否应该使用 append、put 或 setValueAt 以及它是否会给我相同的结果
通常(即不是并发),putAll() 不会比多次调用 put() 更有效,即使假设您排除了构建您传递给 putAll() 的另一个 Map。这是因为 putAll() 将需要迭代传递的 Map 元素,
TreeMap map1 = new TreeMap(); map1.put("A", 1); map1.put("B", 2); map1.put("C", 3); TreeMap map2 = n
我有一个 Hashmap,我在其中编写了一个处理添加和检索值的类。 class ReputationMatrix { private HashMap repMatrix; publi
我是一名优秀的程序员,十分优秀!