天天看点

使用map集合按汉字首字母分组

废话不多说,先做个笔记

ConvertPinyin是一个将汉字转换成拼音的类,自行百度吧。

取拼音的首字母当做map的key,先从map取值,在值的后面拼接一个分隔符,再接上汉字,覆盖掉map里面同一个键的值

private void initData() {

        String name[]={"信升","卓贤","帆枫","龙家","信浩 "};
        
        Map<String,String> map=new HashMap<>();

        for(int i=0;i<name.length;i++) {
            StringBuffer sb=new StringBuffer();
            //取汉字首字母当做key
            String firstLetter = ConvertPinyin.getPinYin(name[i]).substring(0,1);
			//根据key取出map的值,拼接一个分隔符,再接上汉字
            sb.append(map.get(firstLetter)+","+name[i]);
            //使用同一个key存入到map集合中
            map.put(firstLetter,sb.toString());
        }
    }

           

获得一个Map对象后,再根据字母顺序循环遍历map取出值,使用split()方法分割字符串,将得到的字符串存入集合中,按字母排序完成。代码是不是很简单?