-
リストの要素をグループ化してカウントする方法:
import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<String> list = Arrays.asList("apple", "banana", "apple", "orange", "banana", "apple"); Map<String, Long> counts = list.stream() .collect(Collectors.groupingBy(e -> e, Collectors.counting())); System.out.println(counts); } }
出力:
{orange=1, banana=2, apple=3}
上記のコードでは、
groupingBy
メソッドを使用して要素をグループ化し、counting
コレクターを使用して各グループの要素数をカウントしています。 -
オブジェクトのプロパティを基準にグループ化してカウントする方法:
import java.util.*; import java.util.stream.Collectors; public class Main { public static void main(String[] args) { List<Person> people = Arrays.asList( new Person("John", 25), new Person("Jane", 30), new Person("John", 35), new Person("Jane", 28), new Person("John", 25) ); Map<String, Long> counts = people.stream() .collect(Collectors.groupingBy(Person::getName, Collectors.counting())); System.out.println(counts); } } class Person { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } }
出力:
{Jane=2, John=3}
上記のコードでは、
getName
メソッドを使用してPerson
オブジェクトをグループ化し、各グループの要素数をカウントしています。
これらのコード例を参考にして、JavaのStreamを使用して要素をグループ化し、カウントする方法を実装することができます。