2013-04-25 4 views
-2

У меня есть ArrayList с более чем 500 словами. Я пытаюсь организовать их в список, где слово, которое появляется больше всего, находится наверху, а затем второе наиболее частое и так далее ,Результаты для заказа из Collections.frequency

До сих пор мне удалось отфильтровать слова с частотой менее 5 с приведенным ниже кодом, однако я не могу разобраться, как я могу организовать эти результаты в список их частот в порядке убывания.

Set<String> unique = new HashSet<String>(wordsL); 

    for (String key : unique) { 
     if (Collections.frequency(wordsL, key) > 5) { 
//  println(Collections.frequency(wordsL, key)); 
     lwords.add(key); 
     println(lwords); 
     } 
    } 

Заранее благодарим за любую помощь.

+0

часть другого процесса ... не имеет значения. –

+0

wordsL is arrayList типа string –

+2

Почему бы не использовать 'Map ' для подсчета. Это может быть [отсортировано по значению] (http://stackoverflow.com/questions/109383/how-to-sort-a-mapkey-value-on-the-values-in-java) позже. – BobTheBuilder

ответ

1

Для подсчета голосов вы можете использовать Map<String, Integer>.

Вы можете позже sort the map by value.

+0

Спасибо за это, я новичок в этом, и я незнаком с картами, отличная помощь! –