按拼音对HashMap中的key进行排序
来源:互联网 发布:java打印所有水仙花数 编辑:程序博客网 时间:2024/05/16 01:58
如果oracle数据库的字符设置成utf-8之后,就会发现用数据库的order by column进行排序并不是按照拼音来排序的,而是按照二进制的方式来排序的,不符合国人按照首字母拼音排序的需求,我们可以在程序中对查询出来的结果进行按拼音排序。
package com.zxc.util;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.LinkedHashMap;import java.util.Map;import java.util.TreeMap;public class SortHashMapByPinYin {public static void main(String[] args) {HashMap<String, String> map = new HashMap<String, String>();map.put("我", "我");map.put("你", "你");map.put("它", "它");map.put("阿强", "阿强");map.put("阿平", "阿平");map.put("阿宝", "阿宝");map.put("老板", "老板");map.put("程序员", "程序员");Map<String, String> resultMap = sortHashMap(map);System.out.println(resultMap);}/** * 功能描述:按拼音对HashMap中的key进行排序 */public static Map<String, String> sortHashMap(HashMap<String, String> hashMap) {Map<String, String> resultMap = Collections.synchronizedMap(new LinkedHashMap<String, String>());TreeMap<String, String> sorted_map = new TreeMap<String, String>(new Comparator<String>() {public int compare(String arg0, String arg1) {String s1 = "";String s2 = "";try {s1 = new String(arg0.getBytes("gbk"),"ISO-8859-1");s2 = new String(arg1.getBytes("gbk"),"ISO-8859-1");} catch (Exception e) {e.printStackTrace();}return s1.compareTo(s2);}});sorted_map.putAll(hashMap);for (String key : sorted_map.keySet()) {resultMap.put(key, sorted_map.get(key));}return resultMap;}}
输出结果:{阿宝=阿宝, 阿平=阿平, 阿强=阿强, 程序员=程序员, 老板=老板, 你=你, 它=它, 我=我}
- 按拼音对HashMap中的key进行排序
- HashMap:对key进行排序
- java对HashMap中的key或者value值进行排序!
- java对HashMap中的key或者value值进行排序!
- java对HashMap中的key或者value值进行排序
- Java对HashMap中的Entry实体根据Key或者Value进行排序
- HashMap按key值进行排序
- HashMap自动按key值进行排序
- 分别根据key和value对HashMap进行排序
- HashMap根据key值对集合进行排序
- 对hashMap中的value进行排序
- 对HashMap中的实体类进行排序
- 对HashMap中的实体类进行排序
- 如何对HashMap中的元素进行排序
- 对List中的HashMap进行排序。
- 对HashMap中的值进行排序
- 对List中的HashMap进行排序
- 对hashMap中的value进行排序
- Halcon 通过xld检测贴片
- FVWM1
- Android input handling process
- vb 整图复制
- Eclipse 插件大全介绍
- 按拼音对HashMap中的key进行排序
- NS2.3 在 fedora上的安装出现 致命错误:X11/Xlib.h:没有那个文件或目录
- LINUX 和 WINDOWS 内核的区别
- PartnerLink,PartnerLinkType详解
- docx,xlsx等在android中的type
- Oracle 关于日期时间比较、格式转化等操作
- Android4.0.3 显示系统深入理解
- 解决"链接服务器 '(null)' 的 OLE DB 访问接口 'STREAM' 返回了对列 '[!BulkInsert].fieldname' 无效的数据"的一种替换方法
- Android 与 .net 互通的RSA加密