Junior — Middle
Como pode transformar uma lista de elementos numa estrutura do tipo Map?
sobes.tech IA
Resposta da IA
Em Java, para converter uma lista de elementos numa estrutura do tipo Map, pode usar a API Stream e o método Collectors.toMap().
Exemplo: há uma lista de objetos e deseja criar um Map onde a chave seja uma propriedade do objeto e o valor seja o próprio objeto ou outra propriedade.
import java.util.*;
import java.util.stream.*;
class Pessoa {
String id;
String nome;
Pessoa(String id, String nome) {
this.id = id;
this.nome = nome;
}
public String getId() { return id; }
public String getNome() { return nome; }
}
List<Pessoa> pessoas = Arrays.asList(
new Pessoa("1", "Alice"),
new Pessoa("2", "Bob")
);
Map<String, String> idParaNome = pessoas.stream()
.collect(Collectors.toMap(Pessoa::getId, Pessoa::getNome));
System.out.println(idParaNome); // {1=Alice, 2=Bob}
Se as chaves puderem repetir, deve usar a versão de toMap que aceita uma função de fusão.