我无法继续我的HashMap
作业。你能帮助我吗?
我有2个HashMap
:mtutors
和mstudents
。mtutors
键:他们的名字。mtutors
值:主题。mstudents
键:他们的名字。mstudents
值:主题(ArrayList
)
我必须找到匹配的导师学生。
例如:
mtutors键之一:Peter Parker。
mtutors值之一:数学。
msstdents密钥之一:Bill Gates。
mstudents值之一:math,IT。
配对:Peter Parker和Bill Gates-数学。
HashMap<String,String> mtutors = new HashMap<>();
HashMap<String,ArrayList> mstudents = new HashMap<>();
for(int i=0;i<tutors.size();i++)
mtutors.put(tutors.get(i).firstName + " "
+ tutors.get(i).lastName, tutors.get(i).subject);
for(int i=0;i<students.size();i++)
mstudents.put(students.get(i).firstName + " "
+ students.get(i).lastName, students.get(i).students);
最佳答案
如果您使用的是Java8或更高版本,请尝试以下操作:
mtutors.forEach((tutorName, subject) -> {
mstudents.forEach((studentName, subjects) -> {
if (subjects.contains(subject)) {
System.out.println(tutorName + ":" + studentName + ":" + subject);
}
});
});
我假设您正在将科目(而非学生)放置到学生地图上。
数据流仅用于首次拟合的示例。
mtutors.forEach((tutorName, subject) -> {
mstudents.entrySet().stream()
.filter(entry -> entry.getValue().contains(subject))
.findFirst()
.ifPresent(entry -> System.out.println(tutorName + ":" + entry.getKey() + ":" + subject));
});