0

フィールドに含まれる Student のクラスがあるとします: firstName および surname

次に、これを使用して 2 つのリストを作成します

List<Student> classroomA = {["Ben","oreilly"], ["Jenna","Birch"]}
List<Student> classroomB = {["Alan","Messing"], ["Ben", "Mancini"], ["Helena","Wong"]}

これらのリストを使用して、リストから同じ名前のすべての生徒を取得するにはどうすればよいですか。

List<Student> commonStudents = {["Ben","oreilly"],["Ben", "Mancini"]}

リストの両方で for ループを実行しclassroomA.getfirstName().equals(classroomB.getfirstName()) 、唯一の方法を実行しますか?

4

1 に答える 1

0

Java 8 ラムダを使用します。

以下のコードは、リストからすべてのベンを取得します。オブジェクトから特定のフィールド (変換) が必要な場合は、フィルター ストリームでマップを使用します。

  List<Student> AllBens = classA.stream().filter(Objects::nonNull).
         filter(k -> StringUtils.isNotEmpty(k.getName()) && k.getName().equalsIgnoreCase("Ben")).collect(Collectors.toList());
于 2016-03-30T21:53:11.797 に答える