gpt4 book ai didi

java - 如何从 map 中删除所有空元素?

转载 作者:行者123 更新时间:2023-11-29 06:30:03 24 4
gpt4 key购买 nike

最简单的问题形式是我有一个集合,我想删除/删除其 value == null 中的所有元素.我不想就地删除(我想获取新 map ,这样我的原始 map 就安全了)。

public Map<String, String> ADDITIONAL_QUERY = new HashMap<>();
this.ADDITIONAL_QUERY.put("deviceManufacturer", payload.getManufacturer());
this.ADDITIONAL_QUERY.put("deviceModel", payload.getModel());
this.ADDITIONAL_QUERY.put("source", payload.getSource());
this.ADDITIONAL_QUERY.put("adrIMEI", payload.getIMEI());
this.ADDITIONAL_QUERY.put("adrMEID", payload.getMEID());
this.ADDITIONAL_QUERY.put("adrUDID", payload.getUuid() == null ? null : payload.getUuid().toString());
this.ADDITIONAL_QUERY.put("adrID", payload.getAndroidId());
this.ADDITIONAL_QUERY.put("adrSERIAL", payload.getSerial());

我向 ADDITIONAL_QUERY 添加更多元素取决于我稍后调用的 API。

更多详情

我刚刚将我的 Retrofit 库升级到 2.0 版。我有@FieldMap Map<String, String> additionalQuery在我的大多数 API 中(大约 100 个 API)。根据他们的文档关于 FieldMap ,“用于表单编码请求的命名键/值对。 map 的空值,作为键或作为值是不允许的。”,如 java 文档中所述(这很有趣,他们的文档在网络上说你可以 https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/class-use/FieldMap.html )。

enter image description here

由于 API 被频繁调用,我正在寻找一种开销较小且速度当然很快的方法。

最佳答案

您可以使用:

map.values().removeAll(Collections.singleton(null));

关于java - 如何从 map 中删除所有空元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37664374/

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