GabrielF Postado Agosto 2, 2020 Denunciar Compartilhar Postado Agosto 2, 2020 Eu estou fazendo um plugin de /staff, onde ele deveria organizar os staffers online de acordo com o grupo do jogador. Se for master, fica em cima, se for gerente fica embaixo, se for ajudante fica mais embaixo ainda... porém ele não funciona... alguém sabe onde tá o erro??? Link para o comentário Compartilhar em outros sites More sharing options...
Mateusão Postado Agosto 2, 2020 Denunciar Compartilhar Postado Agosto 2, 2020 HashMaps não guardam a ordem, porém LinkedHashMaps sim, então recomendo usa-lo 1 Link para o comentário Compartilhar em outros sites More sharing options...
GabrielF Postado Agosto 2, 2020 Autor Denunciar Compartilhar Postado Agosto 2, 2020 1 hora atrás, Mateusão disse: HashMaps não guardam a ordem, porém LinkedHashMaps sim, então recomendo usa-lo Ainda não resolveu... acho que o erro é aqui, mas não tenho certeza: Stream<Entry<String, Integer>> gruposOrdenados = grupos.entrySet().stream().sorted((x, y) -> y.getValue().compareTo(x.getValue())); gruops2 = (List) gruposOrdenados.collect(Collectors.toList()); for(Entry<String, Integer> entrada : gruops2) { String grup = entrada.getKey(); str.append(grup + "§8[" + p2.getServer().getInfo().getName().toUpperCase() + "] §f" + p2.getName() + "\n"); grupos.clear(); // gruops2.clear(); } Link para o comentário Compartilhar em outros sites More sharing options...
Mateusão Postado Agosto 2, 2020 Denunciar Compartilhar Postado Agosto 2, 2020 1 hora atrás, GabrielF disse: Ainda não resolveu... acho que o erro é aqui, mas não tenho certeza: Stream<Entry<String, Integer>> gruposOrdenados = grupos.entrySet().stream().sorted((x, y) -> y.getValue().compareTo(x.getValue())); gruops2 = (List) gruposOrdenados.collect(Collectors.toList()); for(Entry<String, Integer> entrada : gruops2) { String grup = entrada.getKey(); str.append(grup + "§8[" + p2.getServer().getInfo().getName().toUpperCase() + "] §f" + p2.getName() + "\n"); grupos.clear(); // gruops2.clear(); } Achei um código no StackOverflow, acho que vai ajudar você: public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) { List<Entry<K, V>> list = new ArrayList<>(map.entrySet()); list.sort(Entry.comparingByValue()); Map<K, V> result = new LinkedHashMap<>(); for (Entry<K, V> entry : list) { result.put(entry.getKey(), entry.getValue()); } return result; } Isso vai retornar um Map ordenado por valor, vê se funciona. Link para o comentário Compartilhar em outros sites More sharing options...
GabrielF Postado Agosto 2, 2020 Autor Denunciar Compartilhar Postado Agosto 2, 2020 1 hora atrás, Mateusão disse: Achei um código no StackOverflow, acho que vai ajudar você: public static <K, V extends Comparable<? super V>> Map<K, V> sortByValue(Map<K, V> map) { List<Entry<K, V>> list = new ArrayList<>(map.entrySet()); list.sort(Entry.comparingByValue()); Map<K, V> result = new LinkedHashMap<>(); for (Entry<K, V> entry : list) { result.put(entry.getKey(), entry.getValue()); } return result; } Isso vai retornar um Map ordenado por valor, vê se funciona. Ainda não funcionou... https://prnt.sc/tst7ky Link para o comentário Compartilhar em outros sites More sharing options...
SrBlecaute Postado Agosto 2, 2020 Denunciar Compartilhar Postado Agosto 2, 2020 Map<String, Integer> sortedMap = yourMap.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new)) 1 Link para o comentário Compartilhar em outros sites More sharing options...
SrBlecaute Postado Agosto 2, 2020 Denunciar Compartilhar Postado Agosto 2, 2020 resolvido ? Link para o comentário Compartilhar em outros sites More sharing options...
SrBlecaute Postado Agosto 8, 2020 Denunciar Compartilhar Postado Agosto 8, 2020 Sua dúvida foi marcada como resolvida pela nossa equipe. Caso sua dúvida não tenha sido sanada, crie outro tópico. OBS: Essa mensagem é automática. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados