首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果键存在于映射的值中,则将其删除

如果键存在于映射的值中,则将其删除
EN

Stack Overflow用户
提问于 2018-06-03 01:43:19
回答 3查看 80关注 0票数 2

我有一个映射,其中键也可以作为一个值存在。我需要从值中删除这些。我写了一个方法来做我所需要的,只是我有超过8万个密钥,这需要永远的时间。

代码语言:javascript
运行
复制
static void cleanSetMap(Map<String, Set<String>> inputMap){
    List<String> keys = new ArrayList<>(inputMap.keySet());
    List<Set<String>> values = new ArrayList<>(inputMap.values());

    for (int i = 0; i < keys.size(); i++) {
        String key = keys.get(i);
        for (int j = 0; j < values.size(); j++) {
            Set<String> set = values.get(j);
            set.remove(key);
            values.set(j, set);
        }
    }

    for (int i = 0; i < keys.size(); i++) {
        inputMap.put(keys.get(i), values.get(i));
    }

}

这可以更简单或更快地完成吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50659565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档