Map排序的两种方式:
[code="java"][/code]
public static EnumMap<DataBaseType,Object> mapSort(EnumMap<DataBaseType,Object> temp){
Set<Entry<DataBaseType,Object>> set = temp.entrySet();
Map.Entry<DataBaseType,Object>[] entries = (Entry<DataBaseType, Object>[]) set.toArray();
Arrays.sort(entries, new Comparator<Map.Entry<DataBaseType,Object>>() {
@Override
public int compare(Entry<DataBaseType, Object> o1,
Entry<DataBaseType, Object> o2) {
Long key1 = Long.valueOf(((Map.Entry<DataBaseType,Object>) o1).getValue().toString());
Long key2 = Long.valueOf(((Map.Entry<DataBaseType,Object>) o2).getValue().toString());
return key1.compareTo(key2);
}
});
List<Map.Entry<DataBaseType,Object>> infos = new ArrayList<Map.Entry<DataBaseType,Object>>(
temp.entrySet());
Collections.sort(infos, new Comparator<Map.Entry<DataBaseType,Object>>() {
@Override
public int compare(Entry<DataBaseType, Object> o1,
Entry<DataBaseType, Object> o2) {
return (Integer)o1.getValue()-(Integer)o2.getValue();
}
});
return temp;
}
[code="java"][/code]
public static EnumMap<DataBaseType,Object> mapSort(EnumMap<DataBaseType,Object> temp){
Set<Entry<DataBaseType,Object>> set = temp.entrySet();
Map.Entry<DataBaseType,Object>[] entries = (Entry<DataBaseType, Object>[]) set.toArray();
Arrays.sort(entries, new Comparator<Map.Entry<DataBaseType,Object>>() {
@Override
public int compare(Entry<DataBaseType, Object> o1,
Entry<DataBaseType, Object> o2) {
Long key1 = Long.valueOf(((Map.Entry<DataBaseType,Object>) o1).getValue().toString());
Long key2 = Long.valueOf(((Map.Entry<DataBaseType,Object>) o2).getValue().toString());
return key1.compareTo(key2);
}
});
List<Map.Entry<DataBaseType,Object>> infos = new ArrayList<Map.Entry<DataBaseType,Object>>(
temp.entrySet());
Collections.sort(infos, new Comparator<Map.Entry<DataBaseType,Object>>() {
@Override
public int compare(Entry<DataBaseType, Object> o1,
Entry<DataBaseType, Object> o2) {
return (Integer)o1.getValue()-(Integer)o2.getValue();
}
});
return temp;
}