为每个键打印地图中列表项的大小
Printing the size of list items in map for each key
我有 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 中做到这一点?
如果您希望迭代整个 entrySet,这可能会有用
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();
}
I have java POJO User which contains firstName of the user.
您的要求不需要,因为您不想显示用户的任何信息...
您可以流式传输地图并使用 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"));
}
}
我有 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 中做到这一点?
如果您希望迭代整个 entrySet,这可能会有用
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();
}
I have java POJO User which contains firstName of the user.
您的要求不需要,因为您不想显示用户的任何信息...
您可以流式传输地图并使用 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"));
}
}