java对汉字按照拼音首字母排序_java对象集合中某个属性的汉字进行按拼音进行排序...
在开发中,有些时候我们要对一个集合中的对象的某个属性进行按拼音排序,便于更快的找到汉字,我采用Comparator接口,在实现这个接口里定义排序规则,取得比较对象的汉字编码,并将其转换成字符串,运用String类的 compareTo()方法对两对象进行比较。说了这么多,怎么还不贴代码啊。。。
一,建一个要排序的对象实体类ProvinceVO。
/*
* Copyright 2013 The JA-SIG Collaborative. All rights reserved.
* distributed with this file and available online at
* http://www.etong.com/
*/
package snippet;
import java.io.Serializable;
/**
* 要排序的对象实体类
*
* @author 甘维彬 Exp
* @version $FileName: ProvinceVO.java $Date: 2013-3-27 下午2:11:06 -0400 2013
* @since 1.0
*
*/
public class ProvinceVO implements Serializable {
private static final long serialVersionUID = -6808503832740453598L;
/**
* 标识
*/
private String id;
/**
* 名称
*/
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
二,建一个比较器类PinYinComparator。
/*
* Copyright 2013 The JA-SIG Collaborative. All rights reserved.
* distributed with this file and available online at
* http://www.etong.com/
*/
package snippet;
import java.util.Comparator;
/**
*
* @author 甘维彬 Exp
* @version $FileName: descClass.java $Date: 2013-3-27 下午2:26:42 -0400 2013
* @since 1.0
*
*/
public class PinYinComparator implements Comparator {
/**
* 实现接口里的一个方法,实现比较条件
* 取得比较对象的汉字编码,并将其转换成字符串
*/
@Override
public int compare(ProvinceVO arg1, ProvinceVO arg2) {
try {
String str1 = new String(arg2.getName().getBytes("GB2312"), "ISO-8859-1");
String str2 = new String(arg1.getName().getBytes("GB2312"), "ISO-8859-1");
return str2.compareTo(str1);
} catch (Exception e) {
return 0;
}
}
}
三,这就是测试类了Test.
/*
* Copyright 2013 The JA-SIG Collaborative. All rights reserved.
* distributed with this file and available online at
* http://www.etong.com/
*/
package snippet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
*
* @author 甘维彬 Exp
* @version $FileName: Snippet.java $Date: 2013-3-27 下午1:49:24 -0400 2013
* @since 1.0
*
*/
public class Test {
/**
*
* 运用Collections的sort()方法对其进行排序 sort()方法需要传 连个参数,一个是需要进行排序的Collection
* 另一个是一个Comparator,这里是打印成两行,可以做相应的比较
*
* @param args
*/
public static void main(String[] args) {
List provinceList = new ArrayList();
setProvinceList(provinceList);
for (ProvinceVO key : provinceList) {
System.out.print(key.getName() + ",");
}
System.out.println();
Collections.sort(provinceList, new PinYinComparator());
for (ProvinceVO key : provinceList) {
System.out.print(key.getName() + ",");
}
}
/**
* 准备对象数据集合
*
* @param provinceList
*/
private static void setProvinceList(List provinceList) {
ProvinceVO provinceVO = new ProvinceVO();
provinceVO.setName("南昌市");
provinceList.add(provinceVO);
ProvinceVO provinceVO1 = new ProvinceVO();
provinceVO1.setName("九江市");
provinceList.add(provinceVO1);
ProvinceVO provinceVO2 = new ProvinceVO();
provinceVO2.setName("新余市");
provinceList.add(provinceVO2);
ProvinceVO provinceVO3 = new ProvinceVO();
provinceVO3.setName("鹰潭市");
provinceList.add(provinceVO3);
ProvinceVO provinceVO4 = new ProvinceVO();
provinceVO4.setName("赣州市");
provinceList.add(provinceVO4);
ProvinceVO provinceVO5 = new ProvinceVO();
provinceVO5.setName("抚州市");
provinceList.add(provinceVO5);
ProvinceVO provinceVO6 = new ProvinceVO();
provinceVO6.setName("上饶市");
provinceList.add(provinceVO6);
ProvinceVO provinceVO7 = new ProvinceVO();
provinceVO7.setName("萍乡市");
provinceList.add(provinceVO7);
ProvinceVO provinceVO8 = new ProvinceVO();
provinceVO8.setName("宜春市");
provinceList.add(provinceVO8);
ProvinceVO provinceVO9 = new ProvinceVO();
provinceVO9.setName("景德镇市");
provinceList.add(provinceVO9);
ProvinceVO provinceVO10 = new ProvinceVO();
provinceVO10.setName("吉安市");
provinceList.add(provinceVO10);
}
}
结果就可以看到相应的变化了。
南昌市,九江市,新余市,鹰潭市,赣州市,抚州市,上饶市,萍乡市,宜春市,景德镇市,吉安市,
抚州市,赣州市,吉安市,景德镇市,九江市,南昌市,萍乡市,上饶市,新余市,宜春市,鹰潭市,
~~~~~~~~~~~~~~~~
文笔不好,见笑了@~~@..
java对汉字按照拼音首字母排序_java对象集合中某个属性的汉字进行按拼音进行排序...相关推荐
- java集合对象排序_java ArrayList集合中的某个对象属性进行排序的实现代码
开发中有时候需要自己封装分页排序时,List如何对某一属性排序呢,分享一个小实例,大家共勉,希望能对大家有用,请多多指教. 1.Student的Bean如下: public class Student ...
- java json 对象如何对属性排序_Java对象集合、对象数组如何排序?你需要知道这两种方式...
一.引子 在比较Java对象时,正常情况下,我们只能使用==或!=进行比较,而不能使用>或者<这样的运算符. 那么问题来了,开发过程中我们经常要对多个对象排序,排序必然需要比较,那么如何实 ...
- java list对象排序_Java 对象集合List排序的5种方式
目标明确 排序对象类 public class Student{ private String name; private Integer age; public Student(String nam ...
- 【算法】实现打印汉字拼音首字母
[算法]实现打印汉字拼音首字母 AC记录 原题地址:[1125: 拼音字母] 参考文章: [CSDN]宇宙最强皮皮虾<Java中文转GBK码> 原题摘要: 题目描述 在很多软件中,输入拼音 ...
- VC++中如何获取GB2312字符集中汉字拼音首字母
一.关于GB2312编码的必要知识 GB2312编码适用于汉字处理.汉字通信等系统之间的信息交换,通行于中国大陆:新加坡等地也采用此编码.中国大陆几乎所有的中文系统和国际化的软件都支持GB 2312. ...
- 获取汉字的拼音首字母
利用汉字拼音首字母进行快速检索,效率比直接检索汉字高很多.在ASCII编码中,汉字是按拼音首字母的顺序进行编码的,也就是说拼音首字母相同的汉字的编译是连续的.相对集中的.那么就可以通过比较汉字ASCI ...
- java获取中文串拼音或拼音首字母
例一:获取中文拼音首字母 中华人民共和国万岁! zhrmghgws! 例二:获取中文拼音 我爱你中国! woainizhongguo! 引入如下jar包: <dependency> ...
- python提取首字母的函数_Oracle提取中文字符串拼音首字母函数
通过oracle的NLSSORT函数对汉字按照拼音排序,然后根据汉字的区间返回对应的首字母. 效果1,获取拼音简码: 效果2,获取姓名首字母: 创建函数: /* 获取拼音简码函数 */ CREATE ...
- 自动获取中文拼音首字母方法-Asp.net
调用方法:GetFirstAlphabet("中文拼音首字母方法!"); public string GetFirstAlphabet(string str) // ...
最新文章
- 关于reviewboard汉化
- 查看linux服务器硬盘IO读写负载
- VS2008中代码段(Snippet)及代码段编辑
- 数据结构 | 实现串(定长顺序存储表示法)
- Spring源码:AOP转文
- 第一个PowerShell脚本——PowerShell三分钟(九)
- linux md5sum命令
- 解决Nacos无法连接Mysql8.0+的问题(坑爹的阿里官方文档,已无力吐槽)
- 【Vegas原创】重建Exchange 2007 OWA的虚拟目录
- 千古奇闻!明朝就已成功试爆两万吨原子弹?
- python字典添加主键_字典的常见操作
- C#调用python深度学习项目排坑
- 关于idea maven ojdbc6.jar 报错问题
- 机器学习之线性回归(机器学习基石)
- Go 程序如何被启动,g0,m0 又是什么?
- 华为云买网站买另外服务器,华为云网站在买其他服务器
- 微信域名检测接口文档
- 透明这种颜色的html,透明颜色HTML5帆布
- Windows 11强势来袭,一文带你了解全部更新内容
- 全国天气查询API接口