【问题标题】:count the frequency of each character in char array using java 8 stream使用java 8流计算char数组中每个字符的频率
【发布时间】:2022-01-10 10:00:43
【问题描述】:

给定

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()))

但它不起作用。

【问题讨论】:

    标签: java lambda java-stream


    【解决方案1】:
    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);
    }
    

    } // 这也很有帮助:)

    【讨论】:

      【解决方案2】:

      方法是Stream.of(char[])返回一个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}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-06-04
        • 1970-01-01
        • 2019-08-07
        • 1970-01-01
        • 1970-01-01
        • 2023-04-03
        • 2020-11-23
        相关资源
        最近更新 更多