• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java中map可以按key排序吗?

java 搞代码 4年前 (2022-01-09) 27次浏览 已收录 0个评论

map可以按key排序吗?

map可以按key排序,下面通过实例来看看。

示例:Java Map 按Key排序和按Value排序

package test;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.TreeMap;import java.util.Map.Entry;public class MapSortDemo {    /**     * @param args     */    public static void main(String[] args) {        Map<String, String> hMap = new HashMap<String, String>();        hMap.put("a", "3");        hMap.put("z", "2");        hMap.put("b", "6");        hMap.put("o", "9");        System.out.println("根据key升序排序");         Map<String, String> sortByKeyResultMap = sortMapByKey(hMap);    //按Key进行排序        Iterator<Map.Entry<String, String>> sortByKeyEntries = sortByKeyResultMap.entrySet().iterator();         while (sortByKeyEntries.hasNext()) {           Map.Entry<String, String> entry = sortByKeyEntries.next();           System.out.println("Key = " + entry.getKey() + "------->Value = " + entry.getValue());         }                System.out.println("--------------<div>本文来源gaodai.ma#com搞##代!^码@网3</div>----------------");                 System.out.println("根据value降序排序");         Map<String, String> sortByValueResultMap = sortMapByValue(hMap); //按Value进行排序        Iterator<Map.Entry<String, String>> sortByValueEntries = sortByValueResultMap.entrySet().iterator();         while (sortByValueEntries.hasNext()) {           Map.Entry<String, String> entry = sortByValueEntries.next();           System.out.println("Key = " + entry.getKey() + "------->Value = " + entry.getValue());         }    }    /**     * 使用 Map按key进行排序     * @param map     * @return     */    public static Map<String, String> sortMapByKey(Map<String, String> map) {        if (map == null || map.isEmpty()) {            return null;        }//        Map<String, String> sortMap = new TreeMap<String, String>(new MapKeyComparator());        Map<String, String> sortMap = new TreeMap<String, String>(new Comparator<String>() {            public int compare(String obj1, String obj2) {                return obj1.compareTo(obj2);//升序排序            }        });        sortMap.putAll(map);        return sortMap;    }        /**     * 使用 Map按value进行排序     * @param map     * @return     */    public static Map<String, String> sortMapByValue(Map<String, String> map) {        if (map == null || map.isEmpty()) {            return null;        }        Map<String, String> sortedMap = new LinkedHashMap<String, String>();        List<Map.Entry<String, String>> entryList = new ArrayList<Map.Entry<String, String>>(map.entrySet());//        Collections.sort(entryList, new MapValueComparator());        Collections.sort(            entryList,             new Comparator<Map.Entry<String, String>>(){                   public int compare(Entry<String, String> o1, Entry<String, String> o2) {                       return o2.getValue().compareTo(o1.getValue());// 降序排序                   }            }        );        Iterator<Map.Entry<String, String>> iter = entryList.iterator();        Map.Entry<String, String> tmpEntry = null;        while (iter.hasNext()) {            tmpEntry = iter.next();            sortedMap.put(tmpEntry.getKey(), tmpEntry.getValue());        }        return sortedMap;    }}

java map


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java中map可以按key排序吗?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址