Поиск уникальных букв в строке и поместить результат в 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()));
}