How to use HashMap in this case?

1

I'm a beginner in Java. I need a program that reads the name and number of some people, and then type a number and the program returns the name of the person associated with the number. I was advised to use HashMap. If anyone has any examples ...

    
asked by anonymous 05.11.2015 / 22:50

2 answers

2
import java.util.HashMap;
import java.util.Scanner;

public class Testes {

    public static void main(String[] args) {

        Scanner leitor = new Scanner(System.in);
        HashMap<Integer, String> pessoas = new HashMap<Integer, String>();
        int numero;

        for(int i = 0; i < 5; i++){
            System.out.println("Digite o número da pessoa: ");
            numero = leitor.nextInt();
            System.out.println("Digite o nome da pessoa: ");
            String nome = leitor.next();  // Alteração neste ponto   
            pessoas.put(numero, nome);
        }

        System.out.println("Digite o número da pessoa que você deseja buscar: ");
        numero = leitor.nextInt();

        System.out.println("O nome da pessoa " + numero + " é " + pessoas.get(numero));
    }
}
    
05.11.2015 / 23:13
1

The program below shows how to do this.

First, a list is created where Pessoa s objects are created and inserted. Then, you can scroll through this list by adding% as a key, the number and value of the person's name.

Finally, you go through the list again and recover from HashMap name by using the key as your phone.

Note that we used HashMap as an interface to instantiate Map because this is a good practice.

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class HashMapUso {

    public static void main(String[] args) {

        // crio lista de pessoas
        List<Pessoa> pessoas = new ArrayList<Pessoa>();
        pessoas.add(new Pessoa("nome1", "numero1"));
        pessoas.add(new Pessoa("nome2", "numero2"));
        pessoas.add(new Pessoa("nome3", "numero3"));

        // mapa onde as pessoas são inseridas
        Map<String, String> pessoaMap = new HashMap<String, String>();

        // dado um número, guardo o nome
        for (Pessoa pessoa : pessoas) {
            pessoaMap.put(pessoa.getNumero(), pessoa.getNome());
        }

        // recupero o nome e o imprimo, dado um número
        for (Pessoa pessoa : pessoas) {
            System.out.println(pessoaMap.get(pessoa.getNumero()));
        }
    }
}

class Pessoa {

    public Pessoa(String nome, String numero) {
        this.nome = nome;
        this.numero = numero;
    }

    private String nome;

    private String numero;

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }


}
    
05.11.2015 / 23:16