Map排序(java)

xiaoxiao2021-02-28  114

package com; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; /** * * * @author muyunfei * * <p>Modification History:</p> * <p>Date Author Description</p> * <p>------------------------------------------------------------------</p> * <p>Jun 7, 2017 牟云飞 新建</p> */ public class MapSortDebug { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("广州", "999"); map.put("深圳", "28"); map.put("珠海", "898"); map.put("佛山", "666"); map.put("海南", "889"); Map<String, Integer> result = getSortMap(map); } private static Map<String, Integer> getSortMap(Map<String, String> map){ // 这里将map.entrySet()转换成list List<Map.Entry<String, String>> list = new ArrayList<Map.Entry<String, String>>( map.entrySet()); // 根据字符串类型的数字排序,当然也可以Map.Entry<String, Double> Collections.sort(list, new QuantityComparator()); //输出 Map<String, Integer> mapresult = new HashMap<String, Integer>(); if(list.size()>0){ for(int i=0;i<list.size();i++){ mapresult.put(list.get(i).getKey(), i+1); System.out.println(list.get(i).getKey()+":"+list.get(i).getValue()+";"); } } return mapresult; } private static class QuantityComparator implements Comparator<Object> { public int compare(Object object1, Object object2) {// 实现接口中的方法 Map.Entry<String, String> p1 = null; Map.Entry<String, String> p2 = null; p1 = (Map.Entry<String, String>) object1; // 强制转换 p2 = (Map.Entry<String, String>) object2; return Double.valueOf(p1.getValue()).compareTo(Double.valueOf(p2.getValue())); } } }
转载请注明原文地址: https://www.6miu.com/read-39157.html

最新回复(0)