@Nikita07

Как работает функция computeIfAbsent в Java?

Помогите разобраться со следующим кодом на Java:

private void loadYamlMatcher(MappingNode entry, String filename) {
        List<MappingNode> matcherConfigList = matcherConfigs
            .computeIfAbsent(filename, k -> new ArrayList<>(32));
        matcherConfigList.add(entry);
    }


В данном случаи в filename передаются последовательно следующие названия файлов:

Amazon
AmazonDevices
Android
AndroidDeviceOverrides
Anonymized
Apple
И в matcherConfigs они записываются в следующем порядке

Apple
Android
Anonymized
Amazon
AmazonDevices
AndroidDeviceOverrides
Вопрос заключатеся в том, почему теряется сортировка по алфавиту?
  • Вопрос задан
  • 44 просмотра
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Подозреваю, что matcherConfigs - это HashMap, а HashMap - это неупорядоченная коллекция.
This class makes no guarantees as to the order of the map; in particular, it does not guarantee that the order will remain constant over time.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Сбер Москва
от 150 000 до 320 000 ₽
Сбер Москва
от 200 000 до 260 000 ₽
Сбер Вологда
от 65 000 ₽
06 дек. 2021, в 21:29
50000 руб./за проект
06 дек. 2021, в 21:20
8000 руб./за проект
06 дек. 2021, в 20:48
750 руб./в час