要将数据转换为Java中的Stream,有几种常见的方法,具体取决于数据类型和数据来源。
- 集合(Collection):集合对象,比如List、Set或者数组,可以使用
stream()
方法将其转换为Stream。
List<String> list = Arrays.asList("apple", "banana", "orange");
Stream<String> stream = list.stream();
- 数组(Array):可以使用
Arrays.stream()
方法将数组转换为Stream。
String[] array = {"apple", "banana", "orange"};
Stream<String> stream = Arrays.stream(array);
- 值序列(Value Sequence):一组数值序列,可以使用
Stream.of()
方法将其转换为Stream。
Stream<Integer> stream = Stream.of(1, 2, 3, 4, 5);
- I/O流(Input/Output Stream):处理I/O操作,比如读取文件或网络数据,可以使用
BufferedReader
等类的lines()
方法将数据转换为Stream。
import java.io.BufferedReader;
import java.nio.file.Files;
import java.nio.file.Paths;try (BufferedReader reader = Files.newBufferedReader(Paths.get("data.txt"))) {Stream<String> stream = reader.lines();
}
- 生成器(Generator):需要生成一个无限序列的Stream,可以使用
Stream.generate()
方法或Stream.iterate()
方法。
Stream<Integer> stream = Stream.generate(() -> 1); // 生成一个无限序列,每个元素都是1
Stream<Integer> stream = Stream.iterate(1, n -> n + 1); // 生成一个无限序列,从1开始递增