首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TreeMap的值为TreeSet,如何从这个TreeSet中删除元素?

TreeMap的值为TreeSet,如何从这个TreeSet中删除元素?
EN

Stack Overflow用户
提问于 2016-11-01 08:33:50
回答 2查看 185关注 0票数 2

我有一个TreeMap,其中的值是TreeSet。现在,我需要遍历键,对于TreeSet的每个元素,我必须删除该元素(然后继续做一些事情),然后删除该TreeSet的第二个元素等等。

我试过:

代码语言:javascript
复制
for (Integer w : adjacencyList.get(keyNow)){        
    adjacencyList.get(keyNow).remove(w);
}

这不管用,有人能帮忙吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-01 08:37:28

使用显式迭代器:

代码语言:javascript
复制
if (adjacencyList.containsKey(keyNow)) {
    Iterator<Integer> iter = adjacencyList.get(keyNow).iterator();
    while (iter.hasNext()) {
        Integer w = iter.next();
        iter.remove();
    }
}
票数 3
EN

Stack Overflow用户

发布于 2016-11-01 08:48:42

类似于@Eran的回答,但我会这样写。

代码语言:javascript
复制
Set<Integer> ints = adjacencyList.get(keyNow);
if (ints != null) {
    for (Iterator<Integer> iter = ints.iterator(); iter.hasNext();) {
         Integer w = iter.next();
         // do something with w
         iter.remove();
    }
}

注意:如果不需要检查每个值,只需清除集合即可。

代码语言:javascript
复制
Set<Integer> ints = adjacencyList.get(keyNow);
if (ints != null)
    ints.clear(); // remove all.
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40356501

复制
相关文章

相似问题

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