Ir para conteúdo
  • 0

[Resolvido] [Ajuda] Código está retornando o valor errado


LuizB

Pergunta

Alguém sabe me dizer porque está retornando 1000 ?

È pra retornar 900

 

public static void main(String[] args) {

		Map<String, Integer> map = new HashMap<>();
		map.put("Maria", 900);
		map.put("Joao", 1000);
		map.put("Fernanda", 424);

		List<Entry<String, Integer>> entries = new ArrayList<>(map.entrySet());
		try {
			System.out.println("Primeiro = " + entries.get(0).getValue());
		} catch (NoSuchElementException e) {
			System.out.println("Map está vazia");
			return;
		}
	}
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

E o que eu faço agora ?

E como faço pra pegar o valor de uma key ?

 

Cara, map não é pra isso, map é pra tu usar quando tu precisar associar uma chave a um valor. Se tu quer uma lista, pra acessar randomicamente (usando Índice), tu tem que usar a ArrayList.

 

Tu pode criar uma classe pra representar esses dois, por exemplo.

 

class Player {

   String nome;

   Integer dinheiro;

}

 

ou uma classe que represente um "Par"

class Pair<K, V> {
  K key;
  V value;

  public Pair(K key, V value) {
    this.key = key;
    this.value = value;
  }

  // getters
}

List<Pair<String, Integer>> coisas = new ArrayList<>();

coisas.add(new Pair<>("maria", 900));
coisas.add(new Pair<>("joao", 1000));

System.out.println(coisas.get(0).value); // 900
Link para o comentário
Compartilhar em outros sites

porque nao usa map.isEmpty() para ver se está vazia, para pegar a 1º key eu uso map.keySet().toArray()[0].toString()

para pegar o 1º valor map.get(map.keySet().toArray()[0].toString())

Editado por zAth
Link para o comentário
Compartilhar em outros sites

Não, não é, entrySet retorna um Set, e o Set não é ordenado igual o ArrayList.

E o que eu faço agora ?

porque nao usa map.isEmpty() para ver se está vazia, para pegar a 1º key eu uso map.keySet().toArray()[0].toString()

para pegar o 1º valor map.get(map.keySet().toArray()[0].toString())

E como faço pra pegar o valor de uma key ?

Link para o comentário
Compartilhar em outros sites

 

E como faço pra pegar o valor de uma key ?

 

para pegar o 1º valor map.get(map.keySet().toArray()[0].toString())

como voce pega um valor de uma hash? .-. é map.get(e aqui a key)

se para pegar a 1º key é map.keySet().toArray()[0].toString(), você tem que meter isso no map.get(        map.keySet().toArray()[0].toString()       )

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...