200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > java对汉字按照拼音首字母排序_java对象集合中某个属性的汉字进行按拼音进行排序...

java对汉字按照拼音首字母排序_java对象集合中某个属性的汉字进行按拼音进行排序...

时间:2023-12-20 02:11:11

相关推荐

java对汉字按照拼音首字母排序_java对象集合中某个属性的汉字进行按拼音进行排序...

在开发中,有些时候我们要对一个集合中的对象的某个属性进行按拼音排序,便于更快的找到汉字,我采用Comparator接口,在实现这个接口里定义排序规则,取得比较对象的汉字编码,并将其转换成字符串,运用String类的compareTo()方法对两对象进行比较。说了这么多,怎么还不贴代码啊。。。

一,建一个要排序的对象实体类ProvinceVO。

/*

* Copyright The JA-SIG Collaborative. All rights reserved.

* distributed with this file and available online at

* /

*/

package snippet;

import java.io.Serializable;

/**

* 要排序的对象实体类

*

* @author 甘维彬 Exp

* @version $FileName: ProvinceVO.java $Date: -3-27 下午2:11:06 -0400

* @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 The JA-SIG Collaborative. All rights reserved.

* distributed with this file and available online at

* /

*/

package snippet;

import parator;

/**

*

* @author 甘维彬 Exp

* @version $FileName: descClass.java $Date: -3-27 下午2:26:42 -0400

* @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 pareTo(str1);

} catch (Exception e) {

return 0;

}

}

}

三,这就是测试类了Test.

/*

* Copyright The JA-SIG Collaborative. All rights reserved.

* distributed with this file and available online at

* /

*/

package snippet;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

/**

*

* @author 甘维彬 Exp

* @version $FileName: Snippet.java $Date: -3-27 下午1:49:24 -0400

* @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);

}

}

结果就可以看到相应的变化了。

南昌市,九江市,新余市,鹰潭市,赣州市,抚州市,上饶市,萍乡市,宜春市,景德镇市,吉安市,

抚州市,赣州市,吉安市,景德镇市,九江市,南昌市,萍乡市,上饶市,新余市,宜春市,鹰潭市,

~~~~~~~~~~~~~~~~

文笔不好,见笑了@~~@..

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。