0

假设我有一类 Student 包含在字段中:firstName 和 surname

然后我用它来创建两个列表

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 Lambda。

下面的代码从列表中获取所有 Bens。如果您想要对象中的特定字段(即转换),请在过滤器流上使用映射。

  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 回答