您可以使用Java 8中的Stream API将List<List<model>>转换为List<model>。具体来说,可以使用flatMap方法将嵌套的列表扁平化。以下是一个示例:
import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; class Model { // Model类的实现 } public class FlattenNestedList { public static void main(String[] args) { List<Model> innerList1 = Arrays.asList(new Model(), new Model()); List<Model> innerList2 = Arrays.asList(new Model(), new Model(), new Model()); List<List<Model>> nestedList = Arrays.asList(innerList1, innerList2); List<Model> flattenedList = nestedList.stream() .flatMap(List::stream) .collect(Collectors.toList()); // 打印扁平化后的列表 System.out.println("Size of flattened list: " + flattenedList.size()); } }
在这个示例中,我们创建了两个List<Model>,然后将它们组合成一个List<List<Model>>。接着,我们使用stream()方法创建一个流,然后调用flatMap方法将嵌套列表扁平化。最后,使用collect方法将流转换回一个List<Model>对象。
这种方法不需要显式遍历嵌套列表,而是利用Stream API提供的函数式编程特性来实现列表的扁平化。
C#代码如下:
在C#中,您可以使用LINQ(Language Integrated Query)轻松地将List<List<Model>>转换为List<Model>。下面是一个示例:
using System; using System.Collections.Generic; using System.Linq; class Model { // Model类的实现 } class FlattenNestedList { static void Main(string[] args) { List<Model> innerList1 = new List<Model> { new Model(), new Model() }; List<Model> innerList2 = new List<Model> { new Model(), new Model(), new Model() }; List<List<Model>> nestedList = new List<List<Model>> { innerList1, innerList2 }; List<Model> flattenedList = nestedList.SelectMany(x => x).ToList(); // 打印扁平化后的列表 Console.WriteLine("Size of flattened list: " + flattenedList.Count); } }
在这个示例中,我们创建了两个List<Model>,然后将它们组合成一个List<List<Model>>。接着,我们使用SelectMany方法将嵌套列表扁平化。最后,使用ToList方法将结果转换回一个List<Model>对象。
这种方法不需要显式遍历嵌套列表,而是利用LINQ提供的功能来实现列表的扁平化。