关于java:如何将更多的ArrayList组合到1组ArrayList中

How to combine more set of ArrayList to 1 set ArrayList

我有一个数组列表变量

1
2
3
ArrayList<ArrayList<String>> nodes = new ArrayList<ArrayList<String>>();
And
ArrayList<String> split;

然后我用了nodes.add(split);

我得到了这样的一个结果

1
[[hasAttribute, hasPart, has_RP-09, has_RP-10], [hasAttribute, hasPart, has_RP-03, has_RP-06]]

如何将其组合成这样的结果

1
[hasAttribute, hasPart, has_RP-09, has_RP-10, has_RP-03, has_RP-06]

谢谢你们的回答。


您可以循环遍历单个列表,并将其所有元素添加到Set中:

1
2
3
4
5
6
ArrayList<ArrayList<String>> nodes = new ArrayList<ArrayList<String>>();
...
Set<String> set = new HashSet<String>();
for (ArrayList<String> list : nodes) {
    set.addAll(list);      
}

如果要保留订单,请使用LinkedHashSet而不是HashSet


Java 8可以帮助你很多。

1
Set<String> combined = nodes.stream().flatMap(n -> n.stream()).collect(Collectors.toSet());