Java 创建流

2022-08-17 11:33 更新

Java流 - Java创建流


已将新方法添加到Java库以返回流。

我们可以通过以下方式创建流。

  • 从值创建流
  • 从空流创建流
  • 从函数创建流
  • 从数组创建流
  • 从集合创建流
  • 从文件创建流
  • 从其他来源创建流

在以下部分中,我们将学习如何创建流。


从值创建流

我们可以使用Stream接口的()从单个值和多个值创建顺序流。

<T> Stream<T> of(T  t)
<T> Stream<T> of(T...values)

从方法签名,我们可以看到第一个of()方法从单个值创建流,而第二个of()方法从不同长度参数创建流

以下代码创建包含单个值的流。

import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    Stream<String> stream  = Stream.of("www.w3cschool.cn");
    stream.forEach(System.out::println);
  }
}

上面的代码生成以下结果。


例2

以下代码创建具有四个字符串的流。

import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    Stream<String> stream  = Stream.of("XML", "Java",  "CSS", "SQL");
    stream.forEach(System.out::println);
  }
}

上面的代码生成以下结果。

例3

以下代码从对象数组创建流。

import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    String[] names = { "XML", "Java", "SQL", "CSS" };
    Stream<String> stream = Stream.of(names);
    stream.forEach(System.out::println);
  }
}

上面的代码生成以下结果。

流构建器

我们可以使用Stream.Builder<T>创建流。

以下代码创建流构建器。

Stream.Builder<String> builder = Stream.builder();
import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    Stream<String> stream  = Stream.<String>builder()
        .add("XML")
        .add("Java")
        .add("CSS")
        .add("SQL")
        .build();
    stream.forEach(System.out::println);
  }
}

上面的代码生成以下结果。

IntStream范围

我们可以使用IntStream接口中的以下两种方法从一系列int值创建IntStream。

IntStream range(int start, int end)
IntStream rangeClosed(int start, int end).

它们创建一个包含开始和结束之间的有序整数的IntStream。

指定的结束在range()方法中是独占的,并且在rangeClosed()方法中是包含的。

以下代码使用这两种方法创建一个IntStream,它的整数为1,2,3,4和5作为其元素:

import java.util.stream.IntStream;

public class Main {
  public static void main(String[] args) {
    IntStream oneToFive  = IntStream.range(1, 6);
    //IntStream oneToFive  = IntStream.rangeClosed(1, 5);
    oneToFive.forEach(System.out::println);
  }
}

像IntStream接口一样,LongStream类还包含range()和rangeClosed()方法,它们接受类型为long的参数,并返回一个LongStream。

上面的代码生成以下结果。

空流

空流没有元素。

我们可以使用empty()静态方法从Stream接口以创建空的顺序流。

import java.util.stream.Stream;

public class Main {
  public static void main(String[] args) {
    Stream<String> stream  = Stream.empty();
    stream.forEach(System.out::println);
  }
}

IntStream,LongStream和DoubleStream接口还包含一个empty()静态方法来创建一个空的基本类型流。

以下代码创建一个空的整数流。

IntStream numbers = IntStream.empty();

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号