Java8でIntStream.range()の使い方

javaJava8

Java8でIntStream.range()の使い方

IntStream.range()メソッドでfor文と同じ書き方ができます。

IntStream.range(0, 3) // 0以上3未満
  .forEach(
    e -> {
      System.out.print(e); // 012
    });

boxed()メソッドでStream<Integer>に変換する

boxed()メソッドを使用してIntStream→Stream<Integer>に変換(ボクシング)することが出来ます。

mapメソッドでStringに変換してListにしています。

List<String> list =
IntStream.range(0, 3).boxed().map(String::valueOf).collect(Collectors.toList());

boxed()メソッドでStreamに変換してから逆順にソートしてループします。

IntStream.range(0, 3)
  .boxed()
  .sorted(Comparator.reverseOrder())
  .forEach(e -> System.out.print(e)); // 210

toArray()メソッドでint型配列に変換する

toArray()メソッドを使用してint[]型に変換します。IntStream#toArray()メソッドの戻り値はint[]となります。

int[] in = IntStream.range(0, 3).toArray();
System.out.println(Arrays.toString(in)); // 012[0, 1, 2]

Stream#toArray()メソッドの戻り値はObject[]になります。

コメント

タイトルとURLをコピーしました