java实现的map排序
java实现的map排序,直接上代码:
import java.util.Arrays; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; public class TestSort { // HashMap里面的元素是无序的,要进行排序的话只能是用TreeMap和SortedMap,例如: public static void main(String[] args) throws Exception { Map<Integer, Integer> map = new TreeMap<Integer, Integer>(); map.put(100, 131); map.put(0, 0); map.put(83, 49); map.put(137, 98); map.put(33, 651); map = mapSortByKey(map); System.out.println(map.toString()); } private static SortedMap<Integer, Integer> mapSortByKey( Map<Integer, Integer> unsort_map) { TreeMap<Integer, Integer> result = new TreeMap<Integer, Integer>(); Object[] unsort_key = unsort_map.keySet().toArray(); Arrays.sort(unsort_key); for (int i = 0; i < unsort_key.length; i++) { System.out.println(unsort_map.get(unsort_key[i])); result.put(Integer.parseInt(unsort_key[i].toString()), unsort_map.get(unsort_key[i])); } return result.tailMap(result.firstKey()); } }
打印结果:
651 49 131 98 {0=0, 33=651, 83=49, 100=131, 137=98}
// HashMap里面的元素是无序的,要进行排序的话只能是用TreeMap和SortedMap
为什么不能用 hashmap, 我编写的时候可以啊