我很新TreeMap
和TreeSet
等,并想知道如何按值排序数据结构?我意识到使用TreeSet可以自动将它按字母顺序排序,但我希望它通过值进行排序?任何想法如何做到这一点?如何按值对TreeSet进行排序?
目前,它打印像...
- AAA:29
- aaahealthart:30
- AB:23
- 修道院:14
- abdomin:3
- 仔:29
- aberdeenuni:20
当我想它打印像...
- aaahealthart:30
- AAA:29
- 仔:29
- AB:23
- aberdeenuni:20
- 修道院:14
- abdomin:3
这里是我的方法这里...
ArrayList<String> fullBagOfWords = new ArrayList<String>();
public Map<String, Integer> frequencyOne;
public void termFrequency() throws FileNotFoundException{
Collections.sort(fullBagOfWords);
Set<String> unique = new TreeSet<String>(fullBagOfWords);
PrintWriter pw = new PrintWriter(new FileOutputStream(frequencyFile));
pw.println("Words in Tweets : Frequency of Words");
for (String key : unique) {
int frequency = Collections.frequency(fullBagOfWords, key);
System.out.println(key + ": " + frequency);
pw.println(key + ": " + frequency);
}
pw.close();
}
感谢所有帮助球员。
你不能。使用HashMap存储单词及其频率,然后将映射转换为列表,并按值排序该列表。 –