Java基于lambda的MAP泛型的使用

java 文章 2021-01-27 09:59 0 20 全屏看文

    今天要写一个工具类,对MAP进行排序。值不确定会是什么类型。所以就用泛型了,本来打算偷个懒直接网上找的,结果就是网上没有找到。

    只能自己写一个了。

package cn.sanshu;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.stream.Collectors;

import com.alibaba.fastjson.JSONObject;

public class MapUtil {
	public static <T> Map<String,T> sort(Map<String,T> t){
		Map<String,T> result = t.entrySet().stream()
			    .sorted(Map.Entry.comparingByKey())             
			    .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,
			    (oldValue, newValue) -> oldValue, LinkedHashMap::new));
		return result;
	}
	
	public static void main(String[] args) {
		Map<String,String> testMap = new HashMap<String, String>();
		testMap.put("ccc", "cccc");
		testMap.put("bbb", "bbbb");
		testMap.put("aaa", "aaaa");
		testMap.put("ddd", "dddd");
		testMap = sort(testMap);
		System.out.println(JSONObject.toJSONString(testMap));
	}
}


最总输出:

{"aaa":"aaaa","bbb":"bbbb","ccc":"cccc","ddd":"dddd"}


-EOF-