IntStream.range()の使い方をご紹介します。

Java



最近はforではなくstreamで書くことを推奨されます。(というかほぼ強制)
何やらforよりstreamの方が実行速度が速いとかコードがすっきりするとかの理由らしいです。



実行環境

  • Java8

サンプルコード

forの場合


for (int i=0; i < 5; i++) {
   System.out.println("hoge");
}


IntStreamの場合


 IntStream.range(0, 5)
   .forEach(i -> System.out.println("hoge"));

rangeだと上記の例では「5」は含まれません。
含みたい場合は「rangeClosed」を使用しましょう。


まとめ


やっぱstreamはだいぶすっきり書けますね。
しばらくfor文で慣れてたから時々迷うけど慣れていくしかないかな~と思う今日この頃です。

ちなみに配列とかは普通にstreamが使えますが、enumとかで使いたい場合は下記のようStream.of()を使えばよいです。

@AllArgsConstructor
@Getter
public enum HogeEnum {

    HITO("01", 1);
    TORA("02", 2);

    private String code;
    private String order;

    // ソートして返す
    public static List sort() {
        return Stream.of(values()).sorted(Comparator.comparing(HogeEnum::getOrder)).collect(Collectors.toList());
    }
}


以上、streamについてでした。
スポンサーリンク