zoukankan      html  css  js  c++  java
  • 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;
    	}
    
    }
    
    package test;
    
    import java.text.Collator;
    import java.util.Comparator;
    
    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;
    }
    }
    
    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,李四

  • 相关阅读:
    C语言指针专题——如何理解指针
    C语言指针专题——序
    Java 第14章 字符串
    Java截图笔记
    Java 第五章 循环结构1
    Java 第六章 循环结构2
    Java 第13章 带参数的方法
    Java 第11章 类的无参方法
    Java 第四章 选择结构2
    Java 第三章 选择结构1
  • 原文地址:https://www.cnblogs.com/firstdream/p/5417162.html
Copyright © 2011-2022 走看看