code: private void updateIgnoredWordDictionary() {
      wordsToBeIgnoredDictionary = wordsToBeIgnored
                                     .stream()
                                     .collect(Collectors.groupingBy(s -> s.substring(0,1), Collectors.toSet()));
      wordsToBeIgnoredDictionaryIgnoreCase = wordsToBeIgnored
                                               .stream()
                                               .map(String::toLowerCase)
                                               .collect(Collectors.groupingBy(s -> s.substring(0,1), Collectors.toSet()));
    }
docs: The words' first char serves as key, and the Set<String> contains all Strings starting with this char