我有以下几行,是一个更大的功能的一部分:
Collection<String> idSet; //idset != successors.keys()
Map<String, ArrayList> successors; // parameter to larger function
ArrayList<String> result = new ArrayList<String>();
for (String id: idSet) {
ArrayList<String> idsuccessors = this.successors.get(id);
result.addAll(idSuccessors);
}
我想将映射后继中的所有值组合到一个集合中。虽然上面的代码有效,但我认为必须有一种更清晰的方式(例如在Python中,我在一条短线中实现了它。)
result = set.union(*[set(successors(id)) for id in ids])
请注意,将Mapping的类型从ArrayList转换为例如HashSet不是问题,如果有帮助的话。
任何建议都非常感谢。提前致谢
答案 0 :(得分:0)
这是使用新Java 8流的2线程:
ArrayList<String> result = new ArrayList<>();
successors.values().forEach(result::addAll);
我确定在某个地方潜伏着一条单线,但我还没找到它