gpt4 book ai didi

java - 在原子值的情况下从 map 中删除键

转载 作者:行者123 更新时间:2023-11-29 04:53:37 30 4
gpt4 key购买 nike

我想从 map 中删除键,以防键的值为零(0) 我可以使用
map.values().removeAll(Collections.singleton(0l)); 实现它


在我使用 Map<String,Long> 之前它一直很好用 但现在我们已将实现更改为 Map<String,AtomicLong> 现在它不会删除值为零的键,因为我使用原子变量作为值。
我试过的小代码片段::

    Map<String, AtomicLong> atomicMap = new HashMap<String,AtomicLong>();
atomicMap.put("Ron", new AtomicLong(0l));
atomicMap.put("David", new AtomicLong(0l));
atomicMap.put("Fredrick", new AtomicLong(0l));
atomicMap.put("Gema", new AtomicLong(1l));
atomicMap.put("Andrew", new AtomicLong(1l));

atomicMap.values().removeAll(Collections.singleton(new AtomicLong(0l)));

System.out.println(atomicMap.toString());

输出为
{Ron=0, Fredrick=0, Gema=1, Andrew=1, David=0}

如您所见,值为 0 的键没有被删除。任何人都可以提出解决方案,这将有很大帮助。
谢谢。

最佳答案

如果您使用的是 Java8,可以使用 removeIf 方法。

atomicMap.values().removeIf(x -> x.get() == 0L);
// Prints {Gema=1, Andrew=1}

关于java - 在原子值的情况下从 map 中删除键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34516695/

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