Печать размера элементов списка на карте для каждого ключа - PullRequest
0 голосов
/ 08 сентября 2018

У меня есть Java POJO User, который содержит 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
}
}

Как упоминалось выше в методе toString (), я хотел напечатать список школ с указанием количества учеников в школе.Как я могу сделать это в Java 8?

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

У меня есть Java POJO User, который содержит 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"));
  }
}
0 голосов
/ 08 сентября 2018

Если вы хотите перебрать полный набор записей, это может быть полезно

public String toString() {
   StringBuilder userMap = new StringBuilder();
   userMapOfSchool.forEach((k, v) ->
                userMap.append(k).append(" school has ").append(v.size()).append("noOfStudents."));
   return userMap.toString(); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...