java.util.stream.Stream<T> 是Java 8新加入的最常用的流接口。(这并不是一个函数式接口。)

获取一个流非常简单,有以下几种常用的方式:

  • 所有的Collection集合都可以通过stream默认方法获取流;
  • Stream接口的静态方法of可以获取数组对应的流。

方式1:根据Collection获取

首先,java.util.Collection接口中加入了default方法stream用来获取流,所以其所有实现类均可获取流。

  1. public class StreamApiTest {
  2. @Test
  3. public void streamApiTest(){
  4. ArrayList<String> list = new ArrayList<>();
  5. HashSet<String> set = new HashSet<>();
  6. Stream<String> listStream = list.stream();
  7. Stream<String> setStream = set.stream();
  8. }
  9. }

方式2:根据数组获取流

如果使用的不是集合或映射而是数组,由于数组对象没有默认的方法,但是我们可以通过以下两种方式来获取流

  1. Arrays.stream()方法
  2. Stream.of()方法

通过Arrays工具类

  1. public class StreamApiTest {
  2. @Test
  3. public void streamApiTest(){
  4. int[] arr = new int[]{1,2,3,4,5};
  5. IntStream stream2 = Arrays.stream(arr);
  6. }
  7. }

通过Stream提供的of方法

  1. public class StreamApiTest {
  2. @Test
  3. public void streamApiTest(){
  4. int[] arr = new int[]{1,2,3,4,5};
  5. Stream<int[]> stream = Stream.of(arr);
  6. }
  7. }