我有Java POJO用户,其中包含用户的名字。有一个地图,其中包含根据学校名称映射的用户列表。像下面这样
class User{
String name;
}
class UserMap{
Map<String,List<User> userMapOfSchool;
public String toString(){
//return "schoolName has noOfStudents" for each key in the map
}
}
如上文在toString()方法中所述,我想打印列表学校名称和学校中的学生人数。
如何在Java 8中做到这一点?
最佳答案
我有Java POJO用户,其中包含用户的名字。
您不需要显示该信息,因为您不想显示用户的任何信息...
您可以流式传输地图并使用joining()
收集器进行收集:
class UserMap{
Map<String,List<User> userMapOfSchool;
@Override
public String toString(){
return
userMapOfSchool.entrySet()
.stream()
.map(e -> e.getKey() + " has " + e.getValue().size() + " students")
.collect(joining("\n"));
}
}