Bom dia pessoas!
Seguinte eu tenho um cadastro simples, inserir, excluir, consultar e listar.
Eu fiz o seguinte
[code]public class cadastro {
String menu = "\n MENU \n\n 1 - Novo \n 2 - Excluir \n 3 - Consultar \n 4 - Listar \n 5 - Sair.";
int num = 6;
int []array = new int[10];
public void menu(){
System.out.println(menu);
cadastrocliente();
}
HashMap<String, String> mapeamento = new HashMap<String, String>();
//--------------------------------------------------------------------------------------------------------//
public void cadastrocliente(){
System.out.println("------------------------------------");
int num = Leitor.lerInteger("Qual a opção: ");
System.out.println("------------------------------------");
switch(num)
{
case 1:{
Novo();
break;
}
case 2:{
Excluir();
break;
}
case 3:{
Consultar();
break;
}
case 4:{
Listar();
break;
}
case 5:{
System.out.println("Você acaba de sair.");
return;
}
default:{
System.out.println("\n**NÃO EXISTE**");
}
}
cadastrocliente();
}
//--------------------------------------------------------------------------------------------------------//
public void Novo() {
try {
ClienteII ClienteII = new ClienteII();
ClienteII.getCod_cliente();
int cod_cliente = Leitor.lerInteger("Código do cliente: ");
String nome_Cliente = Leitor.lerString("Nome do cliente: ");
int tel_cliente = Leitor.lerInteger("Número do telefone: ");
ClienteII c = new ClienteII();
c.setCod_cliente(cod_cliente);
c.setNome_Cliente(nome_Cliente);
c.setTel_cliente(tel_cliente);
Primeiro as inserções na Hash são feitas da seguinte maneira, usando a variável que vc criou:
mapeamento.put(cod_cliente,nome_cliente);
o que vem antes da vírgula é a chave, para encontrar algo na tabela…
se você inserir como está ali no código, você estará colocando so dados da seguinte maneira
Chave Dado
“codigo do cliente " String.valueOf(” "+cod_cliente)
entende, quando você for buscar esse dado na tabela Hash, não vai mais encontrar, pois
só é possível buscar pela chave, se vc buscar pela String da chave, ele vai te retornar a tabela toda…
[code] public void Novo() {
try {
int cod_cliente = Leitor.lerInteger("Código do cliente: ");
String nome_Cliente = Leitor.lerString("Nome do cliente: ");
int tel_cliente = Leitor.lerInteger("Número do telefone: ");
ClienteII c = new ClienteII();
c.setCod_cliente(cod_cliente);
c.setNome_Cliente(nome_Cliente);
c.setTel_cliente(tel_cliente);
ArrayList<Cliente> lista_de_clientes = new ArrayList<Cliente>();
lista_de_cliente.add(c);
System.out.println("INSERIDO COM SUCESSO");
} catch (Exception e) {
System.out.println("Erro ao inserir!");
}
}
[code] public void Novo() {
try {
int cod_cliente = Leitor.lerInteger("Código do cliente: ");
String nome_Cliente = Leitor.lerString("Nome do cliente: ");
int tel_cliente = Leitor.lerInteger("Número do telefone: ");
ClienteII c = new ClienteII();
c.setCod_cliente(cod_cliente);
c.setNome_Cliente(nome_Cliente);
c.setTel_cliente(tel_cliente);
HashMap<String, ClienteII> lista_de_cliente = new HashMap<String, ClienteII>();
lista_de_cliente.put(cod_cliente,c);
//Aqui eu coloco o código como chave para que eu possa encontrar meus dados novamente.
System.out.println("INSERIDO COM SUCESSO");
} catch (Exception e) {
System.out.println("Erro ao inserir!");
}
}
[quote=Castellon] É que é um exercicio e pede pra utilizar o HashMap, mais eu nao entendi muito bem pra que serve então to tendo dificuldade pra entender…rs
[/quote]
O Hash é como ujma coleção, serve para que você armazene vários dados. Como se fosse um vetor, porém você pode armazenar o dado que quiser nele…
Se não me engano não implementa conceito de ordem…
mas é claro vê bem o que vc tá fazendo na hora de consultar…
dá uma olhada no tipo de retorno do método get da Hash
e veja se ta certo o que vc está fazendo para imprimir teu retorno
basicamente Map é composto por um par chave-valor.
sendo que a chave não pode se repetir.
um HashMap é ordenado, porém, não em uma ordem muito conveniente…
ele é ordenado pelo código hash da chave.
vamos a um exemplo. (desconsidere a ordenação do código hash :D)
se você usar
put("chave1","valor1");
put("chave2","valor2");
terá a seguinte estrutura…
Keys - Values
chave1 valor1
chave2 valor2
agora vamos supor que você faça o seguinte na sequência…
put("chave1","valor3");
a representação do map ficará assim…
Keys - Values
chave1 valor3
chave2 valor2
note que não foi inserido um novo par chave - valor, mas sim sobrescrito o valor de “chave1”
resumindo…
se o objeto chave não existir no map, será inserido um novo par chave-valor,
se o objeto chave já existir, o objeto valor desse objeto chave será sobrescrito.
e como você está utilizando HashMap. Recomendo que você implemente o método hashCode para todos suas classes que você deseja usar como chave.