Java – хранение значений отсортированного списка в памяти ⇐ JAVA
-
Anonymous
Java – хранение значений отсортированного списка в памяти
Быстрое объяснение:
У меня есть Hashmap, в котором списки хранятся в разном порядке в зависимости от их типа сортировки. Я хочу, чтобы это сохранялось в памяти, чтобы мне не приходилось сортировать каждый список во время выполнения, много раз, что вызвало бы большую нагрузку на процессор.
В настоящее время у меня есть общий HashMap, в котором хранятся все элементы с соответствующим идентификатором...
private Map косметические идентификаторы; Затем я сохраняю каждый из этих идентификаторов в списке, который был отсортирован на основе типа сортировки и вставлен в HashMap, как показано ниже...
public enum SortType { ПО АЛФАВИТУ, ПО АЛФАВИТНОМУ_ОБРАТУ, РЕДКОСТЬ, RARITY_REVERSE; } // Список строк — это идентификатор каждого элемента частный EnumMap доступныеTrailsIDs; частный EnumMap доступныеGadgetsIDs; частный EnumMap доступныеSuitsIDs; частный EnumMap доступныеPetsIDs; Затем я использую следующее, чтобы получить отсортированную карту во время выполнения:
List гаджеты = AvailableGadgets.get(sortType); for (Строка гаджетID: гаджеты.subList(мин, макс)) { Косметический гаджет = CosmeticHandler.getInstance().getCosmeticFromID(gadgetID); // ЗАГРУЗКА ГАДЖЕТОВ ПО ПОРЯДКУ } Есть ли лучший способ сделать это? Похоже, это серьезный недостаток дизайна, из-за которого тратится масса памяти.
Быстрое объяснение:
У меня есть Hashmap, в котором списки хранятся в разном порядке в зависимости от их типа сортировки. Я хочу, чтобы это сохранялось в памяти, чтобы мне не приходилось сортировать каждый список во время выполнения, много раз, что вызвало бы большую нагрузку на процессор.
В настоящее время у меня есть общий HashMap, в котором хранятся все элементы с соответствующим идентификатором...
private Map косметические идентификаторы; Затем я сохраняю каждый из этих идентификаторов в списке, который был отсортирован на основе типа сортировки и вставлен в HashMap, как показано ниже...
public enum SortType { ПО АЛФАВИТУ, ПО АЛФАВИТНОМУ_ОБРАТУ, РЕДКОСТЬ, RARITY_REVERSE; } // Список строк — это идентификатор каждого элемента частный EnumMap доступныеTrailsIDs; частный EnumMap доступныеGadgetsIDs; частный EnumMap доступныеSuitsIDs; частный EnumMap доступныеPetsIDs; Затем я использую следующее, чтобы получить отсортированную карту во время выполнения:
List гаджеты = AvailableGadgets.get(sortType); for (Строка гаджетID: гаджеты.subList(мин, макс)) { Косметический гаджет = CosmeticHandler.getInstance().getCosmeticFromID(gadgetID); // ЗАГРУЗКА ГАДЖЕТОВ ПО ПОРЯДКУ } Есть ли лучший способ сделать это? Похоже, это серьезный недостаток дизайна, из-за которого тратится масса памяти.
Мобильная версия