2015-10-20 46 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。