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,李四

  • 相关阅读:
    3.19 DAY2
    3.18 DAY1
    MySql Scaffolding an Existing Database in EF Core
    asp.net core 2.0 后台定时自动执行任务
    c#中枚举类型 显示中文
    fullCalendar使用经验总结
    Web APP 日期选择控件
    【转】剖析异步编程语法糖: async和await
    【转】Entity Framework 复杂类型
    【转】EF Code First 学习笔记:约定配置
  • 原文地址:https://www.cnblogs.com/firstdream/p/5417162.html
Copyright © 2011-2022 走看看