Buscar

Queremos um mapa em que a chave seja a pontuação do usuário e o valor seja uma lista de usuários que possuem aquela pontuação. Isto é, um Map

Queremos um mapa em que a chave seja a pontuação do usuário e o valor seja uma lista de usuários que possuem aquela pontuação. Isto é, um Map>.

O código tradicional para gerar esse mapa envolve um loop que percorre todos os usuários e verifica se já existe uma lista para aquela pontuação.
O método computeIfAbsent pode ser usado para diminuir o código tradicional.
O Collector groupingBy pode ser usado para gerar esse mapa de maneira mais simples e eficiente.

Essa pergunta também está no material:

Java 8 Pratico Lambdas Streams e os Novos Recursos da Linguagem - Casa do Codigo
137 pág.

Português Escola Colegio Estadual Barao Do Rio BrancoEscola Colegio Estadual Barao Do Rio Branco

💡 1 Resposta

User badge image

Ed Verified user icon

Sim, é possível gerar esse mapa de maneira mais simples e eficiente usando o Collector groupingBy. O código ficaria assim: ``` Map> mapaUsuarios = usuarios.stream() .collect(Collectors.groupingBy(Usuario::getPontuacao)); ``` Nesse código, `usuarios` é a lista de usuários que você quer agrupar, `Usuario` é a classe que representa um usuário e `getPontuacao` é o método que retorna a pontuação do usuário. O resultado é um mapa em que a chave é a pontuação do usuário e o valor é uma lista de usuários que possuem aquela pontuação.

0
Dislike0

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais