第2章 ストリーム API の使い方 : 問題 6 : Stream の効率的な生成
問題 6
文字列からCharacter
のストリームを生成するメソッドがある。
public static Stream<Character> characterStream(String s) { List<Character> result = new ArrayList<>(); for (char c : s.toCharArray()) result.add(c); return result.stream(); }
このメソッドでは、最初にリストを生成して次にリストをストリームに変換している。
Stream
のメソッドだけで、しかもひとつのセンテンスで生成せよ
解答
public static Stream<Character> characterStream(String s) { return IntStream.range(0, s.length()).mapToObj(n -> s.charAt(n)); }