Java将参与签名的字段的值放入map集合,且将字段值(value)进行升序排列,进行字典排序

import java.text.ParseException;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.SynchronousQueue;

import org.apache.commons.beanutils.PropertyUtils;

import com.google.gson.Gson;

public class Test05 {
public static void main(String[] args) {

	Map<String, Object> p = new HashMap<String, Object>();
	System.out.println("例如---------");
	p.put("c", "123");
	p.put("t", "234");
	p.put("y", 1);
	p.put("yu", "yi");
	p.put("i", "345");
	p.put("p", "1234");
	p.put("m", 0);
	p.put("p", "1234");
	p.put("o", 3);

	HashMap<String, Object> hashMap = new HashMap<>();
	Set<String> keySet = p.keySet();
	for (String string : keySet) {
		if (p.get(string) != null && !"".equals(p.get(string))) {
			hashMap.put(string, p.get(string));
		}
	}
	p = sortByValueAscending(hashMap);
	System.out.println(new Gson().toJson(p));

}

public static <K, V extends Comparable<? super V>> Map<String, Object> sortByValueAscending(
		Map<String, Object> map) {
	System.out.println(map.entrySet());
	// Iterator<Entry<String, Object>> iterator = map.entrySet().iterator();

	List<Map.Entry<String, Object>> list = new LinkedList<Map.Entry<String, Object>>(map.entrySet());
	Collections.sort(list, new Comparator<Map.Entry<String, Object>>() {
		@Override
		public int compare(Map.Entry<String, Object> o1, Map.Entry<String, Object> o2) {
			int compare = ((java.lang.String.valueOf(o1.getValue())))
					.compareTo((java.lang.String.valueOf(o2.getValue())));
			// System.out.println(compare);
			return compare;
		}
	});

	Map<String, Object> result = new LinkedHashMap<String, Object>();
	for (Map.Entry<String, Object> entry : list) {
		result.put(entry.getKey(), entry.getValue());
	}
	return result;
}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值