java中文排序
2016-01-11 16:59
585 查看
Java代码
package test;
/**
* @Title: Person.java
* @Copyright: Copyright (c) 2012-11-19
* @Author : zhangzhao
* @Version 0.1
*/
public class Person{
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Java代码
package test;
import java.text.Collator;
import java.util.Comparator;
/**
* @Title: SortChineseName.java
* @Description: 中文字符排序
* @Function: 中文字符排序
* @Copyright: Copyright (c) 2012-11-19
* @Author : zhangzhao
* @Version 0.1
*/
public class SortChineseName implements Comparator<Person>{
Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
@Override
public int compare(Person o1, Person o2) {
if (cmp.compare(o1.getName(), o2.getName())>0){
return 1;
}else if (cmp.compare(o1.getName(), o2.getName())<0){
return -1;
}
return 0;
}
}
Java代码
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestBean {
public static void main(String args[]){
List<Person> list = new ArrayList<Person>();
Person p = new Person();
p.setId(1);
p.setName("张三");
list.add(p);
p = new Person();
p.setId(2);
p.setName("李四");
list.add(p);
p = new Person();
p.setId(3);
p.setName("王五");
list.add(p);
p = new Person();
p.setId(4);
p.setName("赵六");
list.add(p);
//正序
Collections.sort(list, new SortChineseName());
System.out.println("中文名称正序排列:");
for (Person pp:list){
System.out.println(pp.getId()+","+pp.getName());
}
System.out.println("---------------神奇的分割线--------------------");
//倒序
Collections.reverse(list);
System.out.println("中文名称倒序排列:");
for (Person pp:list){
System.out.println(pp.getId()+","+pp.getName());
}
System.out.println("---------------神奇的分割线--------------------");
Collections.sort(list,Collections.reverseOrder(new SortChineseName()));
System.out.println("中文名称倒序排列:");
for (Person pp:list){
System.out.println(pp.getId()+","+pp.getName());
}
}
}
打印结果:
中文名称正序排列:
2,李四
3,王五
1,张三
4,赵六
---------------神奇的分割线--------------------
中文名称倒序排列:
4,赵六
1,张三
3,王五
2,李四
---------------神奇的分割线--------------------
中文名称倒序排列:
4,赵六
1,张三
3,王五
2,李四
原文:http://zhangzhaoaaa.iteye.com/blog/1729517
package test;
/**
* @Title: Person.java
* @Copyright: Copyright (c) 2012-11-19
* @Author : zhangzhao
* @Version 0.1
*/
public class Person{
private int id;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Java代码
package test;
import java.text.Collator;
import java.util.Comparator;
/**
* @Title: SortChineseName.java
* @Description: 中文字符排序
* @Function: 中文字符排序
* @Copyright: Copyright (c) 2012-11-19
* @Author : zhangzhao
* @Version 0.1
*/
public class SortChineseName implements Comparator<Person>{
Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
@Override
public int compare(Person o1, Person o2) {
if (cmp.compare(o1.getName(), o2.getName())>0){
return 1;
}else if (cmp.compare(o1.getName(), o2.getName())<0){
return -1;
}
return 0;
}
}
Java代码
package test;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class TestBean {
public static void main(String args[]){
List<Person> list = new ArrayList<Person>();
Person p = new Person();
p.setId(1);
p.setName("张三");
list.add(p);
p = new Person();
p.setId(2);
p.setName("李四");
list.add(p);
p = new Person();
p.setId(3);
p.setName("王五");
list.add(p);
p = new Person();
p.setId(4);
p.setName("赵六");
list.add(p);
//正序
Collections.sort(list, new SortChineseName());
System.out.println("中文名称正序排列:");
for (Person pp:list){
System.out.println(pp.getId()+","+pp.getName());
}
System.out.println("---------------神奇的分割线--------------------");
//倒序
Collections.reverse(list);
System.out.println("中文名称倒序排列:");
for (Person pp:list){
System.out.println(pp.getId()+","+pp.getName());
}
System.out.println("---------------神奇的分割线--------------------");
Collections.sort(list,Collections.reverseOrder(new SortChineseName()));
System.out.println("中文名称倒序排列:");
for (Person pp:list){
System.out.println(pp.getId()+","+pp.getName());
}
}
}
打印结果:
中文名称正序排列:
2,李四
3,王五
1,张三
4,赵六
---------------神奇的分割线--------------------
中文名称倒序排列:
4,赵六
1,张三
3,王五
2,李四
---------------神奇的分割线--------------------
中文名称倒序排列:
4,赵六
1,张三
3,王五
2,李四
原文:http://zhangzhaoaaa.iteye.com/blog/1729517
相关文章推荐
- Java线程状态及Thread类中的主要方法
- java内存空间
- 【Java】————概述
- spring循环依赖问题分析
- Spring学习笔记---2-IOC详解
- Java的版本、特性和历史
- eclipse 实用技巧记录
- Spring 事务机制详解
- Java Native Interface笔记
- java 99乘法表
- Java高级特性之反射学习总结
- java调WebService
- 贪心算法--哈夫曼编码(java实现 )
- spring单例注入init
- 打开Eclipse/Myeclipse时:Workspace in use or cannot be created, choose a different one.–错误解决办法
- eclipse提示找不到类的解决方法
- 深入分析JavaWeb Item49 -- Struts2中常用标签与主题
- java获取手机号归属地
- java修改session默认过期时间
- 标准trie树的Java实现