Сортировка списка LinkedHashMap

У меня есть список связанных хэш-карт, и мне нужно отсортировать список в соответствии со свойством connectedhashmap.

Вот моя связанная хеш-карта;

        {
          "unit": "HOUR",
          "code": "S-4000",
          "value": "12"
        },
        {
          "unit": "HOUR",
          "code": "S-1001",
          "value": "6"
        },

Я хочу отсортировать этот список по свойству «код».

Это не «связанная хеш-карта». Это фрагмент текста в формате JSON.

Holger 01.04.2021 17:17
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
1
34
1

Ответы 1

Есть несколько способов делать что-то на Java, и лучший из них - тот, который вам больше всего подходит. Поэтому вам следует сначала попробовать себя, а затем спросить здесь, если вы застряли. Однако есть один способ сделать это - но не обязательно лучший для вас.

Чтобы отсортировать список, используйте метод List.sort(), который принимает в качестве аргумента Comparator. Интерфейс Comparator включает несколько служебных методов, упрощающих создание объекта компаратора:

yourList.sort(Comparator.comparing(map -> map.get("code")));

Я уже пробовал это, но выдает ошибку. Вот почему я прошу помощи. Это бросает несовместимые типы: предполагаемый тип не соответствует верхней границе

dani 30.03.2021 17:06

@dani, пожалуйста, обновите свой вопрос, указав эту соответствующую деталь, и постарайтесь описать, что вы на самом деле пробовали и с какими проблемами вы столкнулись.

Alex Rudenko 30.03.2021 17:08

@dani, я пробовал фрагмент кода в ответе, у меня отлично сработало: [{unit=HOUR, value=6, code=S-1001}, {unit=HOUR, value=12, code=S-4000}]

Alex Rudenko 30.03.2021 17:12

@AlexRudenko Держу пари, OP использует карту сырой. Comparator.comparing требует Comparable, поэтому он отклоняет тип Object, замеченный в методе сыройget().

Andreas 30.03.2021 17:24

Другие вопросы по теме