LuizB Postado Novembro 5, 2016 Denunciar Compartilhar Postado Novembro 5, 2016 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 More sharing options...
leonardosc Postado Novembro 5, 2016 Denunciar Compartilhar Postado Novembro 5, 2016 Não, não é, entrySet retorna um Set, e o Set não é ordenado igual o ArrayList. Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Novembro 5, 2016 Denunciar Compartilhar Postado Novembro 5, 2016 (editado) 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 Novembro 5, 2016 por zAth 1 Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Novembro 5, 2016 Autor Denunciar Compartilhar Postado Novembro 5, 2016 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 More sharing options...
zAth Postado Novembro 5, 2016 Denunciar Compartilhar Postado Novembro 5, 2016 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() ) 1 Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Novembro 5, 2016 Denunciar Compartilhar Postado Novembro 5, 2016 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 1 Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Novembro 5, 2016 Autor Denunciar Compartilhar Postado Novembro 5, 2016 Obrigado, ambos funcionou. 1 Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Novembro 5, 2016 Denunciar Compartilhar Postado Novembro 5, 2016 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
LuizB
Alguém sabe me dizer porque está retornando 1000 ?
È pra retornar 900
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados