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

  • 相关阅读:
    方法的形式参数是类名的时候如何调用
    成员变量与局部变量的区别
    如何选择适合自己的Linux版本
    MySQL数据库的特点和优势
    面向对象学生类和手机类的使用
    面向对象基本概述
    数据库概念介绍
    二位数组的求和
    二维数组遍历
    SpringBoot与SpringMVC的区别是什么?
  • 原文地址:https://www.cnblogs.com/firstdream/p/5417162.html
Copyright © 2011-2022 走看看