【发布时间】:2014-02-25 23:36:13
【问题描述】:
简介
首先我想说我正在学习 java,所以如果在任何时候我正在做一些效率低下或可以做得更好的事情,请告诉我。
我要做的是按字母顺序对 HashMap 进行排序,然后按该顺序返回值列表。谷歌搜索后,我发现我可以使用 SortedSet 轻松对 HashMap 进行排序,但是我遇到了如何将树集放入数组的问题?
示例
这样的输入:
{“苹果”、“梨”、“樱桃”、“苹果”、“樱桃”、“梨”、“苹果”、 “香蕉”}
应该返回这个:
{3,1,2,2}
我的代码(到目前为止)
import java.util.*;
public class SortedFreqs {
public int[] freqs(String[] data) {
HashMap<String, Integer> myMap = new HashMap<String, Integer>();
for (String s: data){
if (!myMap.containsKey(s)){
myMap.put(s, 0);
}
myMap.put(s, myMap.get(s)+1);
}
SortedSet<Integer> values = new TreeSet<Integer>(myMap.values());
}
}
【问题讨论】:
-
是你的问题参考。映射或仅显示字数?
-
你想要像 int[] 这样的数组还是 ArrayList
? -
如果您将密钥存储在
TreeMap而不是HashMap中,它们将自动按排序顺序存储。
标签: java sorting hashmap treeset