です。以下のようなクラスがあります。Java 8コレクションの最大サイズは
class Student {
public Student(Set<String> seminars) {
this.seminar = seminars;
}
Set<String> seminar;
public Set<String> getSeminar()
{
return seminar;
}
}
そして、以下のような生徒を作成しました。
List<Student> students = new ArrayList<Student>();
Set<String> seminars = new HashSet<String>();
seminars.add("SeminarA");
seminars.add("SeminarB");
seminars.add("SeminarC");
students.add(new Student(seminars)); //Student 1 - 3 seminars
students.add(new Student(seminars)); //Student 2 - 3 seminars
seminars = new HashSet<String>();
seminars.add("SeminarA");
seminars.add("SeminarB");
students.add(new Student(seminars)); //Student 3 - 2 seminars
seminars = new HashSet<String>();
students.add(new Student(seminars)); //Student 4 - 0 seminars
今の質問は、あなたが3(最大値)のセミナーに出席した学生2名がある見ることができるように「私はMaximusのセミナーをattenededた学生の数を取得しようとしている」ので、私はするのに必要なそのカウントを取得します。
私はストリーム
OptionalInt max = students.stream()
.map(Student::getSeminar)
.mapToInt(Set::size)
.max();
long count = students.stream()
.map(Student::getSeminar)
.filter(size -> size.size() == max.getAsInt())
.count();
を使用して2つの異なる文を使用して同じことを達成し1つのステートメントを使用して同じことを達成するための方法は何ですか?
あなたが最後 – Lino
に過度の1つのブラケットを持っ屋ああ、それは正しいです。ただそれを削除します。ありがとう@ Lino –
何か問題はありませんか?あなたは上記のコードを試しましたか? –