IntStream.range()の使い方をご紹介します。
最近はforではなくstreamで書くことを推奨されます。(というかほぼ強制)
何やらforよりstreamの方が実行速度が速いとかコードがすっきりするとかの理由らしいです。
実行環境
- Java8
サンプルコード
forの場合
for (int i=0; i < 5; i++) {
System.out.println("hoge");
}
System.out.println("hoge");
}
IntStreamの場合
IntStream.range(0, 5)
.forEach(i -> System.out.println("hoge"));
.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());
}
}
@Getter
public enum HogeEnum {
HITO("01", 1);
TORA("02", 2);
private String code;
private String order;
// ソートして返す
public static List
return Stream.of(values()).sorted(Comparator.comparing(HogeEnum::getOrder)).collect(Collectors.toList());
}
}
以上、streamについてでした。
スポンサーリンク