Java 8 の Stream API: コレクションのグループ化と統計に Collectors クラスを使用する方法
はじめに:
Java 8 では、関数型プログラミングの概念である Stream API が導入されています。これにより、収集データをより簡潔かつエレガントな方法で処理できるようになります。 Stream API は豊富な機能を提供します。その 1 つは、コレクションのグループ化とカウントです。この記事では、Collector クラスを使用してこの機能を実現する方法を紹介します。
サンプル コードは次のとおりです:
class Person { private String name; private String gender; private int age; public Person(String name, String gender, int age) { this.name = name; this.gender = gender; this.age = age; } public String getName() { return name; } public String getGender() { return gender; } public int getAge() { return age; } } List<Person> persons = Arrays.asList( new Person("John", "male", 20), new Person("Jane", "female", 25), new Person("Tom", "male", 30), new Person("Emily", "female", 35) ); Map<String, List<Person>> groupedByGender = persons.stream() .collect(Collectors.groupingBy(Person::getGender)); System.out.println(groupedByGender);
出力結果は次のとおりです:
{female=[Person{name='Jane', gender='female', age=25}, Person{name='Emily', gender='female', age=35}], male=[Person{name='John', gender='male', age=20}, Person{name='Tom', gender='male', age=30}]}
上記のコードでは、まず例として Person クラスを作成しました。これには、名前、性別、年齢の属性が含まれます。次に、人物オブジェクトの List コレクションが作成されます。次に、stream() メソッドを使用してコレクションをストリームに変換します。最後に、Collectors クラスの groupBy() メソッドを使用して、Person オブジェクトの性別属性に従ってグループ化します。結果は Map コレクションに保存されます。
サンプル コードは次のとおりです:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5); int sum = numbers.stream().collect(Collectors.summingInt(Integer::intValue)); double average = numbers.stream().collect(Collectors.averagingInt(Integer::intValue)); long count = numbers.stream().collect(Collectors.counting()); System.out.println("Sum: " + sum); System.out.println("Average: " + average); System.out.println("Count: " + count);
出力結果は次のとおりです:
Sum: 15 Average: 3.0 Count: 5
上記のコードでは、最初に整数型のリストを作成します。一連の数字が含まれています。次に、summingInt() メソッドを使用して合計を計算し、averagingInt() メソッドを使用して平均を計算し、counting() メソッドを使用して数値を計算します。最後に、Collectors クラスのcollect() メソッドを通じて結果が取得されます。
概要:
Java 8 の Stream API と Collectors クラスを使用すると、より簡潔かつエレガントな方法でコレクションをグループ化し、統計操作を実行できます。この機能により、コードの可読性が向上するだけでなく、プログラムの柔軟性も大幅に向上します。
上記は、Java 8 の Stream API および Collectors クラスのコレクションのグループ化と統計についてのこの記事の紹介です。お役に立てば幸いです。ありがとう!
以上がJava 8 のストリーム API: コレクションのグループ化と統計のために Collectors クラスを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。