2015-10-20 3 views
1

У меня есть 40 000 текстовых файлов. Все слова из текстового файла сохраняются в 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)); 
     } 

но Didnt совсем понятно, как реализовать счетчик на этой

заранее спасибо

+1

Вам не нужно, 'Set' гарантирует уникальность. – MadProgrammer

ответ

4

Вы не нужно перебирать через unik - это набор, и В словах этого набора удалены дубликаты. Размер unik - ответ на ваш вопрос.

+0

Вы имеете в виду вот так: 'Set unik = new HashSet (ordListe); return unik.size(); ' потому что, когда я не получаю количество уникальных слов, столько же слов, сколько у исходного arraylist – Axel

+0

Я пропустил тот факт, что вы не делаете набор слов; Я не знаю, какие отношения имеет объект Ord со словом, и может только предположить, что ordListe - это список Ордов. Если вы сделаете набор слов, это будет ваш уникальный счет. (Вот почему многие люди на этом сайте настаивают на запущенном примере, поэтому нам не нужно заполнять пробелы предположениями.) – arcy

0

Положите слова в java.util.Bag и напечатайте размер() мешка.

Вы также можете использовать Hashtable с ключевым словом, если хотите сохранить количество слов.

Смежные вопросы