在每个键的地图中打印列表项的大小

App*_*pps 7 java tostring java-8

我有java POJO用户,其中包含用户的firstName.有一个地图,其中包含根据学校名称映射的用户列表.像下面这样的东西

class User{
 String name;
}

class UserMap{
 Map<String,List<User> userMapOfSchool;

public String toString(){
 //return "schoolName has noOfStudents" for each key in the map
}
}
Run Code Online (Sandbox Code Playgroud)

如上所述,在toString()方法中,我想打印列表学校名称和学校中的学生人数.我怎么能在Java 8中做到这一点?

dav*_*xxx 5

我有java POJO用户,其中包含用户的firstName.

您的要求不是必需的,因为您不想显示用户的任何信息......

您可以流式传输地图并使用收集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"));
  }
}
Run Code Online (Sandbox Code Playgroud)