已將新方法添加到Java庫以返回流。
我們可以通過以下方式創(chuàng)建流。
在以下部分中,我們將學(xué)習(xí)如何創(chuàng)建流。
我們可以使用Stream接口的()從單個(gè)值和多個(gè)值創(chuàng)建順序流。
<T> Stream<T> of(T t) <T> Stream<T> of(T...values)
從方法簽名,我們可以看到第一個(gè)of()方法從單個(gè)值創(chuàng)建流,而第二個(gè)of()方法從不同長(zhǎng)度參數(shù)創(chuàng)建流
以下代碼創(chuàng)建包含單個(gè)值的流。
import java.util.stream.Stream; public class Main { public static void main(String[] args) { Stream<String> stream = Stream.of("m.hgci.cn"); stream.forEach(System.out::println); } }
上面的代碼生成以下結(jié)果。
以下代碼創(chuàng)建具有四個(gè)字符串的流。
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); } }
上面的代碼生成以下結(jié)果。
以下代碼從對(duì)象數(shù)組創(chuàng)建流。
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); } }
上面的代碼生成以下結(jié)果。
我們可以使用Stream.Builder<T>
創(chuàng)建流。
以下代碼創(chuàng)建流構(gòu)建器。
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); } }
上面的代碼生成以下結(jié)果。
我們可以使用IntStream接口中的以下兩種方法從一系列int值創(chuàng)建IntStream。
IntStream range(int start, int end) IntStream rangeClosed(int start, int end).
它們創(chuàng)建一個(gè)包含開始和結(jié)束之間的有序整數(shù)的IntStream。
指定的結(jié)束在range()方法中是獨(dú)占的,并且在rangeClosed()方法中是包含的。
以下代碼使用這兩種方法創(chuàng)建一個(gè)IntStream,它的整數(shù)為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的參數(shù),并返回一個(gè)LongStream。
上面的代碼生成以下結(jié)果。
空流沒有元素。
我們可以使用empty()靜態(tài)方法從Stream接口以創(chuàng)建空的順序流。
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接口還包含一個(gè)empty()靜態(tài)方法來創(chuàng)建一個(gè)空的基本類型流。
以下代碼創(chuàng)建一個(gè)空的整數(shù)流。
IntStream numbers = IntStream.empty();
更多建議: