将List列表转换为java中的列表

List<List> superlist = new ArrayList<List>(); List list1 = new ArrayList(); list1.add("a1"); list1.add("a2"); List list2 = new ArrayList(); list2.add("b1"); list2.add("b2"); List list3= new ArrayList(); list3.add("c1"); list3.add("c2"); superlist.add(list1); superlist.add(list2); superlist.add(list3); List result= new ArrayList(); 

现在我想创建一个包含superList中所有值的新列表。 这里的结果应该包含a1,a2,b1,b2,c1,c2

使用flatMap尝试这样:

 List> list = List lst = list.stream() .flatMap(x -> x.stream()) .collect(Collectors.toList()); 

如果您使用Java <8(并且不能使用Stream ),则可以使用Guava的Iterables.concat在单行中执行此操作:

 List merged = Lists.newArrayList(Iterables.concat(superList)); 

您必须遍历superlist List对象中的每个List才能获取所有内容。 您可以使用addAll()方法将每个列表的内容复制到新的List

 List result = new ArrayList(); for (List list : superlist) { result.addAll(list); } 
 superlist.forEach(e -> result.addAll(e)); 

经过一番研究后,我发现了这种方式。