查看: 335|回复: 0

[Java学习] 使用合适的数据结构统计单词次数

发表于 2017-8-8 08:00:03

本文主要讲述一下如何使用apache collections4的bag以及guava的multiset的数据结构来统计单词次数。

maven
  1. <dependency>
  2. <groupId>com.google.guava</groupId>
  3. <artifactId>guava</artifactId>
  4. <version>22.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.commons</groupId>
  8. <artifactId>commons-collections4</artifactId>
  9. <version>4.1</version>
  10. </dependency>
复制代码
bag
  1. @Test
  2. public void testBag(){
  3. Bag<String> bag = new HashBag<>();
  4. String content = "She is beautiful and she is my angel";
  5. Arrays.stream(content.split(" ")).forEach(word -> {
  6. bag.add(word);bag.add(word);
  7. });
  8. //get unique key
  9. Set<String> set = bag.uniqueSet();
  10. set.stream().forEach(word -> {
  11. System.out.println(word + "-->" + bag.getCount(word));
  12. });
  13. }
复制代码
multiset
  1. @Test
  2. public void testMultiSet(){
  3. String content = "She is beautiful and she is my angel";
  4. Multiset<String> set = HashMultiset.create();
  5. Arrays.stream(content.split(" ")).forEach(word -> {
  6. set.add(word);
  7. });
  8. set.stream().distinct().forEach(e -> {
  9. System.out.println(e + "-->" + set.count(e));
  10. });
  11. }
复制代码
小结

经过封装后的数据结构,用起来非常简洁。



回复

使用道具 举报