所以,如果我有以下内容:
TreeMap<Integer, TreeSet<String>> returnMap = new TreeMap<Integer, TreeSet<String>>();
如何为地图内的树集创建迭代器? 我尝试了以下方法:
Iterator<String> mapItr = returnMap.values();
答案 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
个实例。