【发布时间】:2021-03-01 15:13:51
【问题描述】:
我需要加入两个列表,但我需要做一个过滤器,我使用 lambda 但我无法进化
列表1:
{
"idMateria": 9,
"idUsuario": 7,
"materia": "portugues",
"descricao": "desc"
},
{
"idMateria": 10,
"idUsuario": 7,
"materia": "matematica",
"descricao": "desc"
}
{
"idMateria": 10,
"idUsuario": 4,
"materia": "matematica",
"descricao": "desc"
}
列表2:
{
"idNotaMateria": 6,
"idMateria": 234,
"idUsuario": 7,
"notaMateria": 432.0,
},
{
"idNotaMateria": 1,
"idMateria": 10,
"idUsuario": 7,
"notaMateria": 4.0,
},
{
"idNotaMateria": 1,
"idMateria": 10,
"idUsuario": 7,
"notaMateria": 4.0,
}
结果:
{
"idNotaMateria": 1,
"idMateria": 10,
"idUsuario": 7,
"notaMateria": 4.0,
"materia": "matematica"
},
{
"idNotaMateria": 1,
"idMateria": 10,
"idUsuario": 7,
"notaMateria": 4.0,
"materia": "matematica"
}
需要通过idusuario字段过滤并合并列来创建新列表,直到现在它们只能重现单独的列表
列出 notasMaterias = repository.findAll(Sort.by("dataNota").descending()); 列出 materias = materiaRepository.findAll();
List<NotasMateria> filter1 =
notasMaterias.stream()
.filter(t -> t.getIdUsuario()== idusuario)
.collect(Collectors.toList());
List<Materia> filter2 = materias.stream()
.filter(t ->t.getIdUsuario().equals(idusuario) )
.collect(Collectors.toList());
【问题讨论】:
-
你的过滤和合并规则是什么?
-
过滤具有相同字段 idUsuario 和 Materia 的列表,并从 list2 添加 materia 字段,请帮助我