Как заменить следующий код в Java 8? - PullRequest
2 голосов
/ 05 марта 2019
private void createAnagramSignatures() {
    for (String word : dictionary.keySet()) {
        int signature = getSignature(word);
        if (!anagramMap.containsKey(signature)) {
            anagramMap.put(signature, new ArrayList<String>());
        }
        anagramMap.get(signature).add(word);
    }
}

Я немного знаком с map.getOrDefault, но не уверен, как его можно применить в следующем сценарии.

1 Ответ

5 голосов
/ 05 марта 2019

Один из способов сделать это - использовать computeIfAbsent, вы можете выполнить это как:

dictionary.keySet()
        .forEach(word -> anagramMap.computeIfAbsent(getSignature(word),
                key -> new ArrayList<>()).add(word));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...