如何解决从对象的特定属性中组合多个值
我在这里有点疑问。
我有一个特定对象的列表,想对相似的数据进行分组。
目前我的代码段如下:
重要->这是我填充的列表 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,List<Aluno>>> entry : map.entrySet()) {
System.out.println(" NOME: " + entry.getKey() + " || BIMESTRE: " + entry.getValue());
}
这是当前结果:
NOME:JOAO || 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]}
NOME:ANA || BIMESTRE:{1 = [entidade.Aluno@9a],2 = [entidade.Aluno@c7],3 = [entidade.Aluno @ 45,entidade.Aluno @ 246,entidade.Aluno @ 4f]}
NOME:PEDRO || 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]}
NOME:MARIA || 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]}
我想要得到的结果是:
NOME:JOAO || BIMESTRE:1 = 1、2 = 2、3 = 4、4 = 2
NOME:ANA || BIMESTRE:1 = 1、2 = 1、3 = 3
NOME:PEDRO || BIMESTRE:1 = 2、2 = 5、3 = 2、4 = 2
NOME:MARIA || BIMESTRE: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(",")));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。