对map里面的key排序 求代码示例
public class text {
private HashMap map = new HashMap();
private Set keySet = map.keySet();
public Object get(String key) {
return map.get(key);
}
public void put(String key, Object value) {
map.put(key, value);
}
public void sort() {
List list = new ArrayList(map.keySet());
Collections.sort(list, new Comparator() {
public int compare(Object a, Object b) {
return a.toString().toLowerCase().compareTo(b.toString()
.toLowerCase());
}
});
this.keySet = new TreeSet(list);
}
public Set keySet() {
return this.keySet;
}
public static void main(String [] args){
text map = new text();
map.put("1", "yi");
map.put("8", "ba");
map.put("9", "jiu");
map.put("7", "qi");
map.put("5", "wu");
map.put("6", "liu");
map.put("4", "si");
map.put("3", "san");
map.put("2", "er");
for (Iterator it = map.keySet().iterator(); it.hasNext();) {
String key = (String) it.next();
//System.out.println( "key[ " + key + "], value[ " + map.get(key) + "] ");
}
// System.out.println( "\n ");
map.sort();
for (Iterator it = map.keySet().iterator(); it.hasNext();) {
String key = (String) it.next();
System.out.println( "key[ " + key + "], value[ " + map.get(key) + "] ");
}
}
iihero 他的代码写的很好 但是我这个比较容易懂
TreeMap就可以满足你的需求啊
public static void demoTreeMap()
{
Map<Integer, String> m = new TreeMap<Integer, String>();
m.put(10, "d1");
m.put(2, "d0");
m.put(5, "ddd");
for (Map.Entry<Integer, String> o : m.entrySet())
{
System.out.println(o.getKey() + ", " + o.getValue());
}
}
Arrays.sort(map.keySet().toArray(),new Comparator(){//.....});?
HashMap通过hashcode对其内容进行快速查找,而TreeMap中所有的元素都保持着某种固定的顺序,如果你需要得到一个有序的结果你就应该使用TreeMap(HashMap中元素的排列顺序是不固定的)。
集合框架”提供两种常规的Map实现:HashMap和TreeMap (TreeMap实现SortedMap接口)。在Map 中插入、删除和定位元素,HashMap 是最好的选择。但如果您要按自然顺序或自定义顺序遍历键,那么TreeMap会更好。使用HashMap要求添加的键类明确定义了hashCode()和equals()的实现。 这个TreeMap没有调优选项,因为该树总处于平衡状态。
用LinkedHashMap就是有序的,放进去是什么顺序,取出来就是什么顺序
直接用TreeMap,或者LikedHashMap就可以