Estou tentando imprimir os dados contidos em um Map e não estou conseguindo.
Estou aprendendo Java agora.
package testemap;
import java.util.HashMap;
import java.util.Map;
public class TesteMap {
public static void main(String[] args) {
Cliente c1 = new Cliente("070.972.388-10", "José João");
Cliente c2 = new Cliente("090.629.509.12", "Paulo Moura");
Cliente c3 = new Cliente("301.420.556-88", "Vagner Silva");
Map<Integer, Cliente> ht = new HashMap<>();
ht.put(1, c1);
ht.put(2, c2);
ht.put(3, c3);
for (int i = 1; i <= ht.size(); i++) {
System.out.println(ht.get(i));
}
}
}
Isso e facil amigo, tente fazer assim !
for (java.util.Map.Entry<String, Cliente> h : ht.entrySet()) {
System.out.println(h.getKey());
System.out.println(h.getValue());
}
Tem mais de uma forma de você fazer isso.
Exemplo:
Map<Integer, String> map = new HashMap<>();
map.put(1 , "Valor 1");
map.put(2 , "Valor 2" );
map.put(3 , "Valor 3");
map.put(4 , "Valor 4");
// 1
map.forEach((k, v) -> System.out.printf("%d - %s%n", k , v));
//map.forEach((key, value) -> {
// System.out.println(key);
// System.out.println(value);
//});
// 2
for (Map.Entry<Integer, String> entry : map.entrySet()) {
System.out.printf("%d - %s%n", entry.getKey() , entry.getValue());
}
Essa linha só vai imprimir o toString()
dos objetos da classe Cliente
.
Se quer imprimir detalhes, faça assim:
for (int i = 1; i <= ht.size(); i++) {
Cliente cliente = ht.get(i);
System.out.println(cliente.getNome());
System.out.println(cliente.getCPF());
}