2015-10-20 34 views
1

我有一个40 000个ish文本文件。 文本文件中的所有单词都保存在ArrayList中。从文本文件中计算唯一字的数量

我想找到该文件中有多少个唯一字,并将该值返回给主类。 所以如果有一个独特的单词计数器上升一个。

我想输出是

Amount of unique words: 7000 

我试图

 public int antallOrd() { 
      Set<Ord> unik = new HashSet<Ord>(ordListe) ; 
      for (Ord unikt : unik) { 
      System.out.println(nokkel + ": " + Collections.frequency(ordListe, nokkel)); 
     } 

但没有很明白如何实现提前一个计数器来此

感谢

+1

你不需要'Set'保证唯一性。 – MadProgrammer

回答

4

你不需要遍历unik - 这是一个集合,并放置一个那套中的单词会删除重复的内容。 unik的大小是你的问题的答案。

+0

你的意思是这样的: 'Set unik = new HashSet (ordListe); return unik.size();' 因为当我没有获得唯一字的数量时,只是与原始数组列表相同的字数 – Axel

+0

我错过了一个事实,即您没有创建一组字;我不知道Ord对象与单词有什么关系,只能假定ordListe是Ord列表。如果你制作一组单词,那将是你唯一的计数。 (这就是为什么许多人在这个网站上坚持一个可运行的例子,所以我们不必填补与假设的差距。) – arcy

0

将单词放入java.util.Bag并打印该袋子的大小()。

如果要保留每个单词的计数,还可以使用键上的Hashtable。