package ch08.sec13; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.stream.Collectors; import java.util.stream.IntStream; import java.util.stream.Stream; public class PrimitiveTypeStreams { public static void show(String title, IntStream stream) { final int SIZE = 10; int[] firstElements = stream.limit(SIZE + 1).toArray(); System.out.print(title + ": ["); int i; for (i = 0; i < SIZE && i < firstElements.length; i++) { System.out.print(firstElements[i]); if (i < firstElements.length - 1) System.out.print(", "); } if (i < firstElements.length) System.out.print("..."); System.out.println("]"); } public static void main(String[] args) throws IOException { IntStream is1 = IntStream.generate(() -> (int) (Math.random() * 100)); show("is1", is1); IntStream is2 = IntStream.range(5, 10); show("is2", is2); IntStream is3 = IntStream.rangeClosed(5, 10); show("is3", is3); String contents = Files.readString(Paths.get("../alice.txt")); Stream words = Stream.of(contents.split("\\PL+")); IntStream is4 = words.mapToInt(String::length); show("is4", is4); String sentence = "\uD835\uDD46 is the set of octonions."; System.out.println(sentence); IntStream codes = sentence.codePoints(); System.out.println(codes.mapToObj(c -> String.format("%X ", c)).collect( Collectors.joining())); Stream integers = IntStream.range(0, 100).boxed(); IntStream is5 = integers.mapToInt(Integer::intValue); show("is5", is5); } }