@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
Вопрос заключатеся в том, почему теряется сортировка по алфавиту?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
17 апр. 2024, в 00:48
35000 руб./за проект
17 апр. 2024, в 00:13
800 руб./за проект
17 апр. 2024, в 00:06
240000 руб./за проект