I sh для создания целого числа []] для конкретной строки (состоящей только из строчных букв английского языка Engli sh) с использованием потокового API Java 8. Где arr [i] обозначает количество i-го символа словаря Engli sh (например, arr [0] = количество «a» в строке String, а arr [2] = количество «c» в строке String Это может быть просто сделано:
int[] arr = new int[26];
for(char c : str.toCharArray())
arr[c-'a']++;
Или с помощью IntSream 2-ым способом:
int[] arr = IntStream.range('a','z'+1).map(i -> (int)str.chars().filter(c -> c == i).count()).toArray();
Но проблема со вторым подходом состоит в том, что строка обрабатывается 26 раз для каждый из символов от 'a' до 'z'
Можете ли вы предложить лучший способ добиться того же, используя API-интерфейс java8-stream?
PS: я знаю, что это можно сделать с помощью Map но мне нужно int []