java - 从对象的特定属性中组合多个值
问题描述
我在这里有点怀疑。
我有一个特定对象的列表,并且想对类似的数据进行分组。
目前我的代码片段如下所示:
重要 -> 这是我的填充列表PreencherDados.listarAlunos()
Map<String, Map<Integer, List<Aluno>>> map = PreencherDados.listarAlunos()
.stream().collect(
Collectors.groupingBy(Aluno::getNome,
Collectors.groupingBy(Aluno::getBimestre))
);
for (Map.Entry<String, Map<Integer, List<Aluno>>> entry : map.entrySet()) {
System.out.println(" NOME: " + entry.getKey() + " || BIMESTRE: " + entry.getValue());
}
这是当前的结果:
名称:乔奥|| BIMESTRE: {1=[entidade.Aluno@50], 2=[entidade.Aluno@24, entidade.Aluno@44], 3=[entidade.Aluno@2f, entidade.Aluno@476, entidade.Aluno@476, entidade.Aluno@476], 4=[entidade.Aluno@22, entidade.Aluno@32]}
名称:全日空 || BIMESTRE: {1=[entidade.Aluno@9a], 2=[entidade.Aluno@c7], 3=[entidade.Aluno@45, entidade.Aluno@246, entidade.Aluno@4f]}
名称:佩德罗 || BIMESTRE: {1=[entidade.Aluno@21, entidade.Aluno@18d], 2=[entidade.Aluno@23, entidade.Aluno@5a, entidade.Aluno@68, entidade.Aluno@48, entidade.Aluno@ ac], 3=[entidade.Aluno@26, entidade.Aluno@476], 4=[entidade.Aluno@5c, entidade.Aluno@df]}
名称:玛丽亚 || BIMESTRE: {3=[entidade.Aluno@20, entidade.Aluno@476, entidade.Aluno@476, entidade.Aluno@476], 4=[entidade.Aluno@25, entidade.Aluno@2b, entidade.Aluno@ 7a, entidade.Aluno@ca]}
我想得到的结果是:
名称:乔奥|| 比梅斯特:1=1、2=2、3=4、4=2
名称:全日空 || 比梅斯特:1=1, 2=1, 3=3
名称:佩德罗 || 比梅斯特:1=2、2=5、3=2、4=2
名称:玛丽亚 || 比梅斯特:3=4, 4=4
如果您仔细观察,我想将列表中的对象转换为它们自身的总和。
我不知道我是否做得对,所以我希望你的帮助!非常感谢
解决方案
System.out.println(" NOME: " + entry.getKey() + " || BIMESTRE: " +
entry.getValue().entrySet().stream().map( e -> e.getKey() + "=" + e.getValue().size() ).collect(
Collectors.joining(",")));
推荐阅读
- javascript - angular-maps (X-map) 多层标记动态更新
- node.js - Node.js:无法读取未定义的属性“productId”
- html - 混合内容与 GitHub 页面
- python - 如何使用 Python 和 OpenCV 实现 BRISK 来检测特征?
- c++ - FIFO 行为和快速按值查找的数据结构
- php - 用 incron 监视文件夹似乎会杀死我的服务器
- reactjs - Apollo 钩子 useQuery 和 useMutation 在同一个组件下
- gradle - Gradle fatJar:如果我的主类在测试文件夹中,我得到类未找到错误,如果主类在 src/main/java 中,则工作正常
- r - 如何在多个字符串列表中查找匹配值?
- python - 如何通过 iPython 访问 Flask 应用程序的应用程序库?