本文主要講述一下如何使用apache collections4的bag以及guava的multiset的數據結構來統計單詞次數。apache
<dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>22.0</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-collections4</artifactId> <version>4.1</version> </dependency>
@Test public void testBag(){ Bag<String> bag = new HashBag<>(); String content = "She is beautiful and she is my angel"; Arrays.stream(content.split(" ")).forEach(word -> { bag.add(word);bag.add(word); }); //get unique key Set<String> set = bag.uniqueSet(); set.stream().forEach(word -> { System.out.println(word + "-->" + bag.getCount(word)); }); }
@Test public void testMultiSet(){ String content = "She is beautiful and she is my angel"; Multiset<String> set = HashMultiset.create(); Arrays.stream(content.split(" ")).forEach(word -> { set.add(word); }); set.stream().distinct().forEach(e -> { System.out.println(e + "-->" + set.count(e)); }); }
通過封裝後的數據結構,用起來很是簡潔。數據結構