Galera outro problemas com mapa
Preciso de obter uma informação atraves de um valor do meu mapa e não da chave
Em que contexto isso está inserido?
Poderia postar o código?
Sua dúvida pode ter muitas interpretações.
Por exemplo preciso usar um metodo de transferencia bancaria e preciso pegar o cpf do cliente que esta associado a uma conta que eh o valor do meu mapa ,e a chave eh uma string que é credencial orque todas
operações precisam da credencial
Map<String, ContaSalario> banco = new HashMap<>();
E esse eh o cadastro do mapa
Cliente c = new Cliente(“Hermione Granger”, “ahgsg”, “Rua das Alfineiros”, “MG”, “Juiz de Fora”, 12344, 21234, 21325,75, “21/02/2017”, “21/02/2017”);
ContaSalario conta = new ContaSalario(123.7, “1234ABC”, c);
Conta é o value do HashMap e o cpf atributo da classe Cliente.
public static void main(String[] args) {
Cliente cliente1 = new Cliente(0, "cpf1");
Cliente cliente2 = new Cliente(1, "cpf2");
Cliente cliente3 = new Cliente(2, "cpf3");
Conta conta1 = new Conta(0, 100, cliente1);
Conta conta2 = new Conta(1, 200, cliente2);
Conta conta3 = new Conta(2, 300, cliente3);
Map<String, Conta> map = new HashMap<>();
map.put("credencial1", conta1);
map.put("credencial2", conta2);
map.put("credencial3", conta3);
String buscarEsteCpf = "cpf3";
for (Map.Entry<String, Conta> set : map.entrySet()) {
if (set.getValue().getCliente().getCpf().equals(buscarEsteCpf)) {
System.out.println(set.getValue().toString());
}
}
}
Output (sobrescrita toString):
Conta: [ 2, 300.0, Cliente:[ 2, cpf3 ] ]
Então fui fazer como falou e deu esse erro:
Eu dei um exemplo em que o cfg é uma String.
Aparentemente na sua classe Cliente o cpf é tipo primitivo ou qualquer outro tipo que não dá para ver na screenshot.
O equals você usa para comparar dois objetos (tipos referência) do mesmo tipo.
Você pode simplesmente fazer
getCpf() == cpf
Ok obrigada