java - 为每个键打印地图中列表项的大小
问题描述
我有包含用户名的 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"));
}
}
推荐阅读
- r - geom_bar 不显示平均值
- python - 如何将新行添加到现有 txt 文件
- json - 我可以阻止经过身份验证的用户查看我的整个 Firebase 数据库 JSON 文件吗?
- python-3.x - 将 Pandas 系列转换为表格
- amazon-web-services - 如果 AMI 或快照已加密以及使用 AWS 中的哪个密钥 AWS Managed CMK 或 Customer Manager CMK,我如何获取其详细信息
- vue.js - 当对象在 vue.js 中异步加载时,如何将 v-model 设置为对象属性?
- html - 文本是否应该成为可访问性的焦点?我特别在考虑键值对
- javascript - WebAssembly 应用程序如何将其本机 Window / OpenGL / Vulkan 调用映射到 DOM 中的画布元素?
- swift - 如何处理在firestore中包含具有空值字段的文档?
- javascript - 事件循环 - 无限循环不会停止在 Chrome 中渲染管道,但会在 Firefox 上停止