Collectors.toList()和new ArrayList()区别
时间: 2024-05-31 08:08:13 浏览: 150
Collectors.toList()返回的是一个不可变的List集合,而new ArrayList()返回的是一个可变的ArrayList集合。Collectors.toList()方法返回的集合不支持添加、删除等操作,只能进行遍历操作,而new ArrayList()方法返回的集合可以进行添加、删除等操作,是一个可变的集合。此外,Collectors.toList()方法是Java 8中新增的方法,用于Stream API中的操作,而new ArrayList()是Java中常用的创建ArrayList集合的方式。
相关问题
Collectors.toList
Collectors.toList() 是 Java 8 中的一个静态方法,它返回一个 Collector 对象,用于将流中的元素收集到一个 List 中。具体来说,它会将流中的每个元素添加到一个新的 ArrayList 中,并返回该 ArrayList。
例如,假设有一个包含多个字符串的流,我们可以使用 Collectors.toList() 将它们收集到一个 List 中,如下所示:
```
List<String> stringList = stringStream.collect(Collectors.toList());
```
这个方法通常用于将流转换为一个 List,以便我们可以使用 List 的方法对其进行操作。
.collect(Collectors.toList())
`.collect(Collectors.toList())`是Java Stream API中用于将流转换为列表的一个重要方法。它属于`Collectors`类的`toList()`工厂方法,主要用于收集流中的所有元素并将其打包成一个ArrayList。
当你在流式API中执行诸如过滤、映射等操作后,通常需要一个列表或其他可变容器来存储处理过的结果。这个方法会遍历整个流,将每个通过之前操作得到的元素添加到新生成的列表中。例如,假设我们有一个包含数字的流,我们可以先筛选出偶数,然后收集到一个新的列表:
```java
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
```
在这个例子中,`evenNumbers`将是 `[2, 4]`,因为只收集了原始列表中偶数部分。