【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を積極的に使っていきたいですね

是非フォローしてください

最新の情報をお伝えします

コメントを残す