MYSQL和JAVA中将中文汉字按照拼音首字母排序

一、MYSQL将中文汉字按照拼音首字母排序

数据库使用的字符编码是utf8_general_ci,如下

sql 复制代码
ORDER BY CONVERT(表名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;

若是表查询,CONVERT中可以不添加表名。

查询结果如下:

二、JAVA中将中文汉字按照拼音首字母排序

1.String集合排序

java 复制代码
		List<String> list = new ArrayList<>();
		list.add("北京");
		list.add("上海");
		list.add("广州");
		list.add("深圳");
		list.add("长沙");
		Comparator comparator = Collator.getInstance(Locale.CHINA);
		list.sort(comparator::compare);
		list.stream().forEach(System.out::println);

运行结果:

2.对象集合排序

java 复制代码
		List<City> cityList = new ArrayList<>();
		cityList.add(new City(1, "北京"));
		cityList.add(new City(2, "上海"));
		cityList.add(new City(3, "广州"));
		cityList.add(new City(4, "深圳"));
		cityList.add(new City(5, "长沙"));
		// 获取中文环境
		Comparator comparator = Collator.getInstance(Locale.CHINA);
		// 排序
		Collections.sort(cityList, (e1, e2) -> {
		    return comparator.compare(e1.getName(), e2.getName());
		});
		
		cityList.stream().forEach(System.out::println);

运行结果:

相关推荐
陈大爷(有低保)4 分钟前
UDP Socket聊天室(Java)
java·网络协议·udp
阿华的代码王国15 分钟前
MySQL ------- 索引(B树B+树)
数据库·mysql
kinlon.liu17 分钟前
零信任安全架构--持续验证
java·安全·安全架构·mfa·持续验证
王哲晓38 分钟前
Linux通过yum安装Docker
java·linux·docker
java66666888843 分钟前
如何在Java中实现高效的对象映射:Dozer与MapStruct的比较与优化
java·开发语言
Violet永存44 分钟前
源码分析:LinkedList
java·开发语言
执键行天涯44 分钟前
【经验帖】JAVA中同方法,两次调用Mybatis,一次更新,一次查询,同一事务,第一次修改对第二次的可见性如何
java·数据库·mybatis
liupenglove1 小时前
golang操作mysql利器-gorm
mysql·golang
Jarlen1 小时前
将本地离线Jar包上传到Maven远程私库上,供项目编译使用
java·maven·jar
蓑 羽1 小时前
力扣438 找到字符串中所有字母异位词 Java版本
java·算法·leetcode