Java---根据汉字拼音排序(Tree系列)

71 篇文章 0 订阅
35 篇文章 0 订阅

在做项目的时候,一般项目都会有查询功能,这时有个需求,就是根据汉字拼音排序。

话不多少,直接上代码:

import java.text.Collator;
import java.util.Comparator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;
/**
 * Time:2018/4/5
 * Description:按汉字拼音排序
 * @author 宋进宇
 */
public class SortByTreeMap {
	public static void main(String[] args) {
		//通过创建排序树自定义排序规 去排序。
		Map map = new TreeMap(new Comparator() {
			//通过工厂方法  获取Collator对象  
			private Collator collator = Collator.getInstance();
			@Override
			public int compare(Object o1, Object o2) {
				//通过collator.getCollationKey(String source)方法,
				//去获取 source所对应的语言环境下的CollationKey值,
				//通过collationKey.compareTo(otherCollationKey)去排序
				return collator.getCollationKey((String) o1).compareTo(collator.getCollationKey((String) o2));
			}
		});
		map.put("老王", "20");
		map.put("凤姐", "18");
		map.put("叶良辰", "23");
		map.put("张三", "22");
		map.put("李四", "21");
		Set set = map.entrySet();
		for (Object object : set) {
			Entry en = (Entry) object;
			System.out.println(en.getKey()+","+en.getValue());
		}
		
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值