2013-04-25 88 views
-2

我有一個500字以內的ArrayList。我試圖將它們組織成一個列表,其中出現最多的單詞是頂部,然後是第二最頻繁的等等。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

另一個進程的一部分......無關緊要。 – 2013-04-25 11:10:40

+0

wordsL是字符串類型的arrayList – 2013-04-25 11:11:02

+2

爲什麼不使用Map 進行計數。這可以稍後[按值排序](http://stackoverflow.com/questions/109383/how-to-sort-a-mapkey-value-on-the-values-in-java)。 – BobTheBuilder 2013-04-25 11:16:16

回答

1

您可以使用Map<String, Integer>進行計數。

您可以稍後sort the map by value

+0

感謝你們,我是新手,對地圖不熟悉,對我有幫助! – 2013-04-25 11:21:49