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

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

Похожие вопросы