如何迭代Map <integer,set =“”>?

时间:2017-02-24 20:15:53

标签: java

所以,如果我有以下内容:

TreeMap<Integer, TreeSet<String>> returnMap = new TreeMap<Integer, TreeSet<String>>();

如何为地图内的树集创建迭代器? 我尝试了以下方法:

Iterator<String> mapItr = returnMap.values();

1 个答案:

答案 0 :(得分:3)

如果你不关心订单......

final TreeMap<Integer, TreeSet<String>> returnMap = new TreeMap<Integer, TreeSet<String>>();

final List<String> strings = new ArrayList();
for (final TreeSet<String> treeSet : returnMap.values()) {
  strings.addAll(treeSet);
}

final Iterator<String> mapItr = strings.iterator();

在Java 8中,使用流,可能是:

final Iterator<String> mapItr = returnMap
                                  .values()
                                  .stream()
                                  .flatMap(Set::stream)
                                  .collect(Collectors.toList())
                                  .iterator();

如果您关心订单,则需要按照您想要的顺序浏览TreeSet个实例。