【例付き】Java Streamのcounting()メソッドで要素数をカウントする方法
JavaのStream APIには、ストリーム内の要素数をカウントするためのCollectors.counting()メソッドが用意されています。このメソッドはcollect()メソッドと組み合わせて使用し、結果はlong型として返されます。
基本構文
long count = stream.collect(Collectors.counting());
例1:文字列のストリームをカウントする
まずは、文字列のストリームに含まれる要素数をcounting()メソッドで取得する例を見てみましょう。
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Demo {
public static void main(String[] args) {
Stream<String> stream = Stream.of("Kevin", "Jofra", "Tom", "Chris", "Liam");
// 要素数をカウント
long count = stream.collect(Collectors.counting());
System.out.println("ストリーム内の要素数 = " + count);
}
}実行結果
ストリーム内の要素数 = 5
5つの名前を持つ文字列ストリームに対してcounting()を実行すると、正しく「5」が出力されます。
例2:整数のストリームをカウントする
続いて、整数要素のストリームをカウントする例です。
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Demo {
public static void main(String[] args) {
Stream<Integer> stream = Stream.of(5, 10, 20, 40, 80, 160);
// 要素数をカウント
long count = stream.collect(Collectors.counting());
System.out.println("ストリーム内の要素数 = " + count);
}
}実行結果
ストリーム内の要素数 = 6
6つの整数要素を持つストリームから「6」が正しく返されていることが確認できます。
補足:Stream.count()メソッドとの違い
Streamインターフェースには、同じく要素数を返すcount()メソッドもあります。単純に件数だけが必要な場合はstream.count()の方が簡潔です。一方、Collectors.counting()はgroupingBy()などと組み合わせて「グループごとの件数」を集計したい場合に特に役立ちます。用途に応じて使い分けるとよいでしょう。
-
Java StreamのfindAny()メソッドの使い方を例付きで解説
Java Stream APIのfindAny()メソッドは、ストリーム内のいずれか1つの要素を返すメソッドです。戻り値はOptional型で、ストリームが空の場合には空のOptionalが返されます。ここでいうOptionalとは、null以外の値を保持している場合と保持していない場合があるコンテナオブジェクトのことです。findAny()は並列処理(parallel stream)との相性が良く、どの要素が返されても問題ない場合に効率的に動作するのが特徴です。基本的な構文Optional<T> result = stream.findAny();例1:整数のリストからfindA
-
Java 8 Streamsチュートリアル – コード例で学ぶStream APIの基本と使い方
この記事では、Java 8のStreams(ストリーム)機能について詳しく解説し、さまざまなコード例を交えながらその使い方を紹介します。 Java StreamsはJavaに関数型プログラミングをもたらす強力な機能です。Java 8から導入されたため、それ以前のバージョンを使用している場合は、Java 8以降へのアップグレードが必要です。 なぜJava Streamsを使うべきなのか? Streamsには以下のようなメリットがあります。 少ないコード量で多くを実現できる — ごくわずかな行数のコードで、従来は多くの記述が必要だった処理を簡潔に実装できます。 ラムダ式を活用できる — 使い捨て