对键值对进行排序 C#+Java不同写法

C#有现成的sortMapByKey方法,调用一下就行:

// 引用命名空间
using System.Collections;

                Dictionary<string, string> param = new Dictionary<string, string>();
                param.Add("bbb", "bbb"); 
                param.Add("aaa", "aaa");
                // 序列化
                Dictionary<string, string> pa2 = sortMapByKey(param);

Java方法:


import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;

   /**
     * 使用 Map按key进行排序
     * 
     * @param map
     * @return
     */
    private static Map<String, Object> sortMapByKey(Map<String, Object> map) {
        if (map == null || map.isEmpty()) {
            return null;
        }

        Map<String, Object> sortMap = new TreeMap<String, Object>(new Comparator<String>() {
            @Override
            public int compare(String str1, String str2) {
                return str1.compareTo(str2);
            }
        });

        sortMap.putAll(map);

        return sortMap;
    }

 

Java调用:

        Map<String, Object> param = new HashMap<String, Object>();
        param.put("bbb", "xxxx");
        param.put("cccc", "www");
        Map<String, Object> params = sortMapByKey(param); // 按Key进行排序
    
        StringBuilder builder = new StringBuilder();// 拼接成参数
        for (Entry<String, Object> entry : params.entrySet()) {
            builder.append(entry.getKey()).append("=").append(entry.getValue()).append("&");
        }
        String str = builder.substring(0, builder.length() - 1);//去掉最后一个&

 

posted @ 2022-04-13 17:25  淘来的星湖  阅读(163)  评论(0编辑  收藏  举报