【Stream接口转换】
StreamSample7.java
import java.util.stream.DoubleStream;
import java.util.stream.IntStream;
import java.util.stream.Stream;
public class StreamSample7 {
public static void main(String[] args) {
// Stream<String> -> Stream<Integer>
Stream<String> stream1o = Stream.of("a", "b");
Stream<Integer> stream1n = stream1o.map(s -> s.length());
// Stream<String> -> IntStream
Stream<String> stream2o = Stream.of("naoki", "akko", "ami");
IntStream stream2n = stream2o.mapToInt(s -> s.length());
// Stream<Integer> -> IntStream
Stream<Integer> stream3o = Stream.of(1, 2, 3);
IntStream stream3n = stream3o.mapToInt(n -> n);
// Stream<Integer> -> Stream<String>
Stream<Integer> stream4o = Stream.of(1, 2, 3);
Stream<String> stream4n = stream4o.map(n -> n + "a");
// IntStream -> Stream<String>
IntStream stream5o = IntStream.of(1, 2, 3);
Stream<String> stream5n = stream5o.mapToObj(n -> n + "a");
// IntStream -> Stream<Integer>
IntStream stream6o = IntStream.of(1, 2, 3);
Stream<Integer> stream6n = stream6o.boxed();
// IntStream -> DoubleStream(mapToDouble)
IntStream stream1i = IntStream.of(2, 3, 5);
DoubleStream stream1d = stream1i.mapToDouble(n -> n);
System.out.println(stream1d.average().getAsDouble());
// IntStream -> DoubleStream(asDoubleStream)
IntStream stream2i = IntStream.of(2, 3, 5);
DoubleStream stream2d = stream2i.asDoubleStream();
System.out.println(stream2d.average().getAsDouble());
}
}
输出:
3.3333333333333335
3.3333333333333335