📜  如何在Java 8 中从 Stream 中获取 ArrayList(1)

📅  最后修改于: 2023-12-03 15:38:33.096000             🧑  作者: Mango

如何在Java 8 中从 Stream 中获取 ArrayList

在Java 8 中,我们可以使用 Stream API 来对集合进行非常方便的操作,其中就包括将 Stream 转换为 ArrayList。本文将介绍如何在Java 8 中从 Stream 中获取 ArrayList。

1. 使用 Collectors.toList()

Collectors.toList() 方法可以将 Stream 转换为 List,我们可以通过调用该方法来获取 ArrayList。

List<String> list = stream.collect(Collectors.toList());
ArrayList<String> arrayList = new ArrayList<>(list);

在这个示例中,我们首先将 Stream 转换为 List,然后将 List 转换为 ArrayList。

2. 使用 Collectors.toCollection()

如果我们想要指定 ArrayList 的实现,我们可以使用 Collectors.toCollection() 方法,并传递一个构造函数引用。

ArrayList<String> arrayList = stream.collect(Collectors.toCollection(ArrayList::new));

在这个示例中,我们直接将 Stream 转换为 ArrayList。

3. 使用 StreamSupport.stream()

如果我们需要将一个 Spliterator 转换为 ArrayList,我们可以使用 Java 8 中新增的 StreamSupport 类。

Spliterator<String> spliterator = list.spliterator();
ArrayList<String> arrayList = StreamSupport
    .stream(spliterator, false)
    .collect(Collectors.toCollection(ArrayList::new));

在这个示例中,我们首先需要获取一个 Spliterator,然后通过 StreamSupport.stream() 方法将其转换为 Stream,最后再将 Stream 转换为 ArrayList。

总结

以上就是Java 8 中从 Stream 中获取 ArrayList 的方法。使用 Stream API 可以让我们更加方便地操作集合,省去了繁琐的迭代等操作。