使用 java 8 流计算 char 数组中每个字符的频率
count the frequency of each character in char array using java 8 stream
给出
char[] arr = {'a','a','c','d','d','d','d'};
我想这样打印
{a=2,c=1,d=4}
使用 java 8 个流。
使用这个:
Stream.of(arr).collect(Collectors.groupingBy(Function.identity(),Collectors.counting()))
但它不起作用。
方法是Stream.of(char[])
returns一个Stream,其中每个元素都是一个char数组,你想要一个char流,有几种方法here
char[] arr = {'a', 'a', 'c', 'd', 'd', 'd', 'd'};
Map<Character, Long> result = IntStream.range(0, arr.length).mapToObj(i -> arr[i])
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(result); // {a=2, c=1, d=4}
public class CharFrequencyCheck {
public static void main(String[] args) {
Stream<Character> charArray = Stream.of('a', 'a', 'c', 'd', 'd', 'd', 'd');
Map<Character, Long> result1 = charArray.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(result1);
}
} // 这也很有用:)
给出
char[] arr = {'a','a','c','d','d','d','d'};
我想这样打印
{a=2,c=1,d=4}
使用 java 8 个流。
使用这个:
Stream.of(arr).collect(Collectors.groupingBy(Function.identity(),Collectors.counting()))
但它不起作用。
方法是Stream.of(char[])
returns一个Stream,其中每个元素都是一个char数组,你想要一个char流,有几种方法here
char[] arr = {'a', 'a', 'c', 'd', 'd', 'd', 'd'};
Map<Character, Long> result = IntStream.range(0, arr.length).mapToObj(i -> arr[i])
.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(result); // {a=2, c=1, d=4}
public class CharFrequencyCheck {
public static void main(String[] args) {
Stream<Character> charArray = Stream.of('a', 'a', 'c', 'd', 'd', 'd', 'd');
Map<Character, Long> result1 = charArray.collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));
System.out.println(result1);
}
} // 这也很有用:)