1. 概要
このチュートリアルでは、範囲内の数値のシーケンスを一覧表示するさまざまな方法について説明します。
2. 範囲内の番号の一覧表示
2.1. 従来のforループ
従来のforループを使用して、指定した範囲の数値を生成できます。
public List<Integer> getNumbersInRange(int start, int end) {
List<Integer> result = new ArrayList<>();
for (int i = start; i < end; i++) {
result.add(i);
}
return result;
}
上記のコードは、 start (包括的)から end (排他的)までの番号を含むリストを生成します。
2.2. JDK 8 IntStream.range
JDK8で導入されたIntStreamを使用すると、特定の範囲の数値を生成でき、forループの必要性が軽減されます。
public List<Integer> getNumbersUsingIntStreamRange(int start, int end) {
return IntStream.range(start, end)
.boxed()
.collect(Collectors.toList());
}
2.3. IntStream.rangeClosed
前のセクションでは、endは排他的です。 end を含む範囲の数値を取得するには、IntStream.rangeClosedがあります。
public List<Integer> getNumbersUsingIntStreamRangeClosed(int start, int end) {
return IntStream.rangeClosed(start, end)
.boxed()
.collect(Collectors.toList());
}
2.4. IntStream.iterate
前のセクションでは、範囲を使用して一連の数値を取得しました。 シーケンス内に必要な数がわかっている場合は、IntStream.iterateを利用できます。
public List<Integer> getNumbersUsingIntStreamIterate(int start, int limit) {
return IntStream.iterate(start, i -> i + 1)
.limit(limit)
.boxed()
.collect(Collectors.toList());
}
ここで、 limit パラメーターは、反復する要素の数を制限します。
3. 結論
この記事では、範囲内で数値を生成するさまざまな方法を見てきました。
コードスニペットは、いつものように、GitHubのにあります。