java中文排序
2016-08-13 14:54
477 查看
对中文名称进行排序,不多说,上代码
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,李四
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,李四
相关文章推荐
- java中文字符串按拼音排序 代码
- 在java中使用TreeMap进行中文排序
- Java 冒泡排序、插入排序等六种排序方法、Java中文排序、Java字符串排序
- java 中文排序 中文拼音排序 pinyin4j (怡,阿等)
- Java中文排序
- 浅谈Java、MySQL的中文排序问题
- Java对中文字符串排序处理
- Java中的中文排序(简短版)
- java 中文排序
- Java 中文拼音 排序
- JAVA实现中文排序(转载)
- java TreeMap 中文 排序
- Java中文进行排序
- java对中文(拼音)进行排序
- java使用Unicode码对中文进行排序
- java中文字符串按拼音排序代码
- Java中文进行排序
- java中文排序
- 最简单的对Java List列表按中文拼音排序的实现方式
- java中文排序