Поиск уникальных букв в строке и поместить результат в Map

Метод принимает на вход String. надо посчитать количество уникальных букв в строке и запихать в Map<буква, количество повторений> без использования циклов и условий. Думал сперва сделать так:

List<String> stringChars = Arrays.asList(string.split(""));

а потом как-то из листа достать буквы и посчитать их количество. но пока не нашел как.

на просторах гугла попадалось:

public Map<Integer, Animal> convertListAfterJava8(List<Animal> list) {
    Map<Integer, Animal> map = list.stream()
            .collect(Collectors.toMap(Animal::getId, animal -> animal));
    return map;
}

Но я не знаю как это приспособить к своей задаче, поскольку в этом варианте не примитивы и используются неизвестные мне лямбды.


Ответы (1 шт):

Автор решения: Andrew Bystrov

Изучайте лямбды. Это поможет при программировании на java 8+.

Вот код (может показаться что он без лямбд, но на самом деле они есть, просто их явно не видно)

public static Map<String, Integer> collectCharacters(String s) {
    return Arrays.stream(s.split(""))
        .collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
}
→ Ссылка