从实体列表中查找缺少的实体

erhoui1w  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(118)

我想得到一个Map列表,这些Map按 year 根据学生名单找到失踪的学生。

class Student {
   private String studentNo
   private String studentName
   private String year

   // Getter is implemented
   // Setter is implemented
}

List<String> studnetNoList = new ArrayList<>();

studnetNoList = 
 [
    "001A",
    "002B",
    "003C"
 ]

这是学生的样本名单

List<Student> studentList = new ArrayList<>();

studentList = 
    [
      {
        "studentNo": "001A",
        "studentName": "Alex",
        "year": "2010"
      },
      {
        "studentNo": "001B",
        "studentName": "John",
        "year": "2010"
      },
      {
        "studentNo": "003C",
        "studentName": "Jane",
        "year": "2011"
      },
      {
        "studentNo": "001A",
        "studentName": "David",
        "year": "2011"
      },
      {
        "studentNo": "001C",
        "studentName": "Jane",
        "year": "2012"
      }
    ]

HashMap<String, Student> groupedStudent = new HashMap<>();

{
  "2010": [
    {
      "studentNo": "001A",
      "studentName": "Alex",
      "year": "2010"
    },
    {
      "studentNo": "001B",
      "studentName": "John",
      "year": "2010"
    }
  ],
  "2011": [
    {
      "studentNo": "003C",
      "studentName": "Jane",
      "year": "2011"
    },
    {
      "studentNo": "001A",
      "studentName": "David",
      "year": "2011"
    }
  ],
  "2012": [
    {
      "studentNo": "001C",
      "studentName": "Jane",
      "year": "2012"
    }
  ]
}

这是我对列表的预期结果

List<Student> missingStudentList = new ArrayList<>();

{
  "2010": [
    {
      "studentNo": "001C",
      "studentName": "Jane",
      "year": "2010"
    }
  ],
  "2011": [
    {
      "studentNo": "001B",
      "studentName": "John",
      "year": "2011"
    }
  ],
  "2012": [
    {
      "studentNo": "001A",
      "studentName": "Alex",
      "year": "2010"
    },
    {
      "studentNo": "001B",
      "studentName": "John",
      "year": "2010"
    }
  ]
}

我刚刚解决了这个问题!!
首先,我将原来的学生名单按年份分组成一张Map,然后我用学生编号列表迭代这个分组学生的Map,以找到缺少的学生。然后我不得不重新创建 Student 通过将新值设置为 year 这需要为学生指定,我从来没有想过设置一个新的值 year 对学生来说。这就是为什么我一直在寻找失踪学生的原因。
我从这个社区得到了很多帮助!谢谢大家!!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题