【Java】streamとforでカウントするソースを比較!件数チェック!!(count, filter)
あるリスト変数から特定の条件でマッチするデータをカウントしたい時はありませんか?
(件数チェックとかとかで…)
for文とstreamでコードを書いていきたいと思います
好みの方を使っていてください
1. 前提
10より大きい数値をカウントしそのカウントを出力します
2. for文でカウント
リストのデータを順番に確認してカウントしていきます
// テストデータを生成する
List<Integer> numberList = new ArrayList<Integer>(Arrays.asList(1, 5, 6, 11, 15, 18, 100));
int count= 0;
for (Integer number : numberList) {
// 10以上の場合はカウントする
if (number > 10) {
// countに+1する
++count;
}
}
System.out.println(count);
// 出力結果
// 4
3. streamでカウント
リストのデータを流して1行でカウントしていきます
filter()とcount()を使用します
// テストデータを生成する
List<Integer> numberList = new ArrayList<Integer>(Arrays.asList(1, 5, 6, 11, 15, 18, 100));
// 10以上の値を抽出しカウントします
long count= numberList.stream().filter(number -> number > 10).count();
System.out.println(count);
// 出力結果
// 4
※ countの返却型はlongです
いかがでしたでしょうか?
見たらわかりわかりますがstreamのほうが1ステップで表現できるためスマートですよね!
streamを積極的に使っていきたいですね
是非フォローしてください
最新の情報をお伝えします