Jvdeveloper:
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つの方法は、使用されるだろうcomputeIfAbsent
、あなたのようにそれを行うことができます:
dictionary.keySet()
.forEach(word -> anagramMap.computeIfAbsent(getSignature(word),
key -> new ArrayList<>()).add(word));