java8 Stream的应用

统计所有单词的总个数和每个单词出现的次数

使用了文件流,中间操作有常用的map,flatmap,filter,groupingby等。

Java8 的Stream的简单应用

1.txt 文件

hello world
hello java
hello tom
hello lucy
lucy java
lucy tom
    @Test
    public void getCountNum(){
		try {
			BufferedReader br = new BufferedReader(new FileReader("../1.txt"));
			int sum = br.lines().map(String::trim)
					.filter(s -> !s.isEmpty())
					.map(s -> s.split(" "))
					.mapToInt(array -> array.length)
					.parallel()
					.sum();
			System.out.println(sum);
		}catch (Exception e){

		}
	}

	@Test
	public void getWordCount(){
		try {
			BufferedReader br = new BufferedReader(new FileReader("../1.txt"));
			Map<String, Long> collect = br.lines().map(String::trim)
					.filter(s -> !s.isEmpty())
					.map(s -> s.split(" "))
					.map(array -> Stream.of(array))
					.flatMap(s -> s)
					.collect(Collectors.groupingBy(s -> s, Collectors.counting()));
			System.out.println(collect);
			Iterator<Map.Entry<String, Long>> iterator = collect.entrySet().iterator();
			while (iterator.hasNext()) {
				Map.Entry<String, Long> next = iterator.next();
				System.out.println(next.getKey() + "====" + next.getValue());
			}
		}catch (Exception e){

		}
	}

猜你喜欢

转载自blog.csdn.net/u011243684/article/details/84595013
今日推荐