zoukankan      html  css  js  c++  java
  • List集合String字符串按照汉语拼音排序

    public static void main(String[] args) {
            List<Map<String, Object>> mapList = new ArrayList<Map<String,Object>>();
            Map<String, Object> m1 = new HashMap<String,Object>();
            m1.put("name", "AC");
            Map<String, Object> m2 = new HashMap<String,Object>();
            m2.put("name", "AB");
            Map<String, Object> m3 = new HashMap<String,Object>();
            m3.put("name", "中国");
            Map<String, Object> m4 = new HashMap<String,Object>();
            m4.put("name", "广东");
            Map<String, Object> m5 = new HashMap<String,Object>();
            m5.put("name", "B东");
            Map<String, Object> m6 = new HashMap<String,Object>();
            m6.put("name", "C东");
            mapList.add(m1);
            mapList.add(m2);
            mapList.add(m3);
            mapList.add(m4);
            mapList.add(m5);
            mapList.add(m6);
            if(CollectionUtils.isNotEmpty(mapList)){
                Collections.sort(mapList, new Comparator<Map<String,Object>>() {  
                    @Override  
                    public int compare(Map<String,Object> m1, Map<String,Object> m2) {  
                        String o1 = (String) m1.get("name");
                        String o2 = (String) m2.get("name");
                        char c1 = ((String) o1).charAt(0);  
                        char c2 = ((String) o2).charAt(0);  
                        return concatPinyinStringArray(PinyinHelper.toHanyuPinyinStringArray(c1)).compareTo(  
                                concatPinyinStringArray(PinyinHelper.toHanyuPinyinStringArray(c2))); 
                    }  
                });  
            }
            
            for (Map<String, Object> map : mapList) {
                System.out.println("map:"+(String)map.get("name"));
            }
        }
        
        
        
        private static String concatPinyinStringArray(String[] pinyinArray) {  
            StringBuffer pinyinSbf = new StringBuffer();  
            if ((pinyinArray != null) && (pinyinArray.length > 0)) {  
                for (int i = 0; i < pinyinArray.length; i++) {  
                    pinyinSbf.append(pinyinArray[i]);  
                }  
            }  
            return pinyinSbf.toString();  
        }  
  • 相关阅读:
    一种不求交点确定直线与三角形是否相交的方法
    碰撞边界锯齿的平滑方法
    demo的凹凸贴图效果
    MySQL进阶篇触发器
    MySQL进阶篇索引
    Maven的POM文件详解
    Swagger
    MySQL进阶篇存储过程
    SpringBoot基础篇
    MySQL基础篇多表操作
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/10861299.html
Copyright © 2011-2022 走看看