Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как сделать топ значений из HashMap?

Тема в разделе "Разработка плагинов для новичков", создана пользователем PloHish, 29 окт 2017.

Статус темы:
Закрыта.
  1. Автор темы
    PloHish

    PloHish Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Abcik
    Есть HashMap<String, Integer> rating = new HashMap<>();
    где String Это игрок, а Integer его рейтинг. Мне нужно сортировать это от большого (1 место) до колличества игроков в ХешКарте (Для определения позиции игрока).
    Надеюсь на помощь.
     
    Последнее редактирование: 12 ноя 2017
  2. Mr Hosting
  3. Bomber123

    Bomber123 Активный участник Пользователь

    Баллы:
    76
    Совет от говнокодера: декопильни плагин Citizens и найди там команду /npc despawn. Он вроде как тоже npc пакетами создаёт.
     
  4. LuckyZeeRo

    LuckyZeeRo Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    _LuckyZeeRo
  5. Dan_Ender

    Dan_Ender Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Dan_Ender
    Код:
    PacketPlayOutEntityDestroy entityDestroyPacket = new PacketPlayOutEntityDestroy(int entityId);
     
  6. Автор темы
    PloHish

    PloHish Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Abcik
    Спасибо.
     
  7. Автор темы
    PloHish

    PloHish Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Abcik
    Ап Новая тема.
     
  8. SecDet

    SecDet Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    SecDet
    Collections sort java doc.
     
  9. Автор темы
    PloHish

    PloHish Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    Abcik
    Можно пожалуйста в коде? Никогда с этим не работал.
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ну все - выбрасывай.
     
  11. Типа админ:D

    Типа админ:D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    B1ruk
    Ты и**от? Зачем редактировать тему?
     
  12. SecDet

    SecDet Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    SecDet
    Зачем создавать две темы, если можно использовать одну, два раза?
     
  13. Аминчик

    Аминчик Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    AmiN4iK_03
     

    Вложения:

  14. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    TreeMap
     
  15. Bomber123

    Bomber123 Активный участник Пользователь

    Баллы:
    76
    Хаш МАП порядок не сохраняет. Были мапы которые это делали по-моему это TreeHashMap
     
    Последнее редактирование: 13 ноя 2017
  16. Bomber123

    Bomber123 Активный участник Пользователь

    Баллы:
    76
    ой твоё не заметил
     
  17. SecDet

    SecDet Участник Пользователь

    Баллы:
    36
    Имя в Minecraft:
    SecDet
    Когда вы**нулся за счёт другого человека. :lol:
     
  18. Bomber123

    Bomber123 Активный участник Пользователь

    Баллы:
    76
    Я не *******лся я серьёзно. Я просто отвечал с телефона а там маленький экран и я не заметил его ответа.
     
  19. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    TreeMap будет сортировать по ключу, а не по значению. Рейтинг может не быть уникальным, а игрок обязан.
    Код:
    map.entrySet().stream().sorted(Map.Entry.comparingByValue()) ... 
    Если составить список из игроков, то
    Код:
    List<Player> top10 = map.entrySet()
            .stream()
            .sorted(Map.Entry.comparingByValue().reversed())
            .limit(10)
            .map(Map.Entry::getKey)
            .collect(Collectors.toList());
    
    Выдаст не более 10 игроков, имеющих максимальный балл.

    Чтобы получить позицию игрока, можно не лимитировать вывод [+ в java 9 заюзать takeWhile (не тот самый игрок)] и по полученному списку взять indexOf.
     
    Последнее редактирование: 17 ноя 2017
Статус темы:
Закрыта.

Поделиться этой страницей