java使用stream实现词频统计

这里使用stream方式,对数据进行处理。

1、 一行一行的读取数据

        // 以行为单位,读取数据
        BufferedReader in = new BufferedReader(
                // 读取resources里面的资源
                new InputStreamReader(
                        Ex1.class.getClassLoader().getResourceAsStream("words.txt")));

        // in.lines 得到的就是一个stream
        Map collect = in.lines().
                flatMap(x -> Arrays.stream(x.split(" ")))
                .collect(Collectors.groupingBy(x -> x,Collectors.counting()));
        System.out.println("collect = " + collect);

        // 我们以行为单位,读取数据
        // x-> Arrays.stream(x.split(" ") ,中 x是一行数据,对x以空格进行分割,得到一个数组。数组是不能被flatMap的,要先转成流


    }

groupBy分组,这里传了2个参数,第一个是转换型,按照什么分组。第二个参数是分组后进行什么处理。这里统计数量。

你可能感兴趣的:(JAVA测开技术知识,java,开发语言)