读书人

Java 比较器Comparator 跟Comparable

发布时间: 2012-12-18 12:43:41 作者: rapoo

Java 比较器Comparator 和Comparable
1. 比较器Comparator

/* * 文 件 名:  Comp.java * 版    权:  Sunny Technologies Co., Ltd. Copyright YYYY-YYYY,  All rights reserved * 描    述:  <描述> * 修 改 人:  HAOHAO * 修改时间:  2012-9-4 * 跟踪单号:  <跟踪单号> * 修改单号:  <修改单号> * 修改内容:  <修改内容> */package com.sunny.collection;import java.util.Comparator;import com.sunny.parse.Person;/** * <一句话功能简述> * <功能详细描述> * * @author  HAOHAO * @version  [版本号, 2012-9-4] * @see  [相关类/方法] * @since  [产品/模块版本] */public class Comparators implements Comparator<Person>{    public Comparators()    {    }    /**     * 比较器实现方法     * @param o1 Person     * @param o2 Person     * @return int 返回比较的结果     */    public int compare(Person o1, Person o2)    {        if (o1.getName().compareTo(o2.getName()) > 0)        {            return 1;        }        else if (o1.getName().compareTo(o2.getName()) < 0)        {            return -1;        }        else        {            return o1.getAge() - o2.getAge();        }    }}


2. 实现类
/* * 文 件 名:  AppComparators.java * 版    权:  Sunny Technologies Co., Ltd. Copyright YYYY-YYYY,  All rights reserved * 描    述:  <描述> * 修 改 人:  HAOHAO * 修改时间:  2012-9-4 * 跟踪单号:  <跟踪单号> * 修改单号:  <修改单号> * 修改内容:  <修改内容> */package com.sunny.collection;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.SortedSet;import java.util.TreeSet;import com.sunny.parse.Person;/** * <一句话功能简述> * <功能详细描述> * * @author  HAOHAO * @version  [版本号, 2012-9-4] * @see  [相关类/方法] * @since  [产品/模块版本] */public class AppComparators{    /** <一句话功能简述>     * <功能详细描述>     * @param args [参数说明]     *     * @return void [返回类型说明]     * @exception throws [违例类型] [违例说明]     * @see [类、类#方法、类#成员]     */    public static void main(String[] args)    {        SortedSet<Person> personList = new TreeSet<Person>();        personList.add(new Person("张三", "男", 39));        personList.add(new Person("关欣", "女", 29));        personList.add(new Person("五", "男", 25));        personList.add(new Person("小三", "女", 49));        List<Person> list = new ArrayList<Person>();        list.add(new Person("张三", "男", 439));        list.add(new Person("关欣", "男", 39));        list.add(new Person("张三", "男", 339));        list.add(new Person("五", "男", 49));        list.add(new Person("小三", "男", 59));        Comparators comp = new Comparators();        Collections.sort(list, comp);        for (Person person : list)        {            System.out.println(person.getName() + " *******" + person.getAge());        }        System.out.println("---------------");        Person[] arrayPerson = { new Person("张三", "男", 439),                new Person("关欣", "男", 39), new Person("张三", "男", 339),                new Person("五", "男", 49), new Person("小三", "男", 59) };        java.util.Arrays.sort(arrayPerson);        for (Person person2 : arrayPerson)        {            System.out.println(person2.getName() + " *******" + person2.getAge());        }    }}


3.Person 对象
/* * 文 件 名:  Person.java * 版    权:  Co., Ltd. Copyright YYYY-YYYY,  All rights reserved * 描    述:  <描述> * 修 改 人:  HAOHAO * 修改时间:  2012-9-2 * 跟踪单号:  <跟踪单号> * 修改单号:  <修改单号> * 修改内容:  <修改内容> */package com.sunny.parse;/** * <一句话功能简述> * <功能详细描述> * * @author  HAOHAO * @version  [版本号, 2012-9-2] * @see  [相关类/方法] * @since  [产品/模块版本] */public class Person implements Comparable<Person>{    private String name;    private String sex;    private int age;    private String email;    public Person()    {    }    public Person(String name)    {        super();        this.name = name;    }    public Person(String name, String sex)    {        super();        this.name = name;        this.sex = sex;    }    public Person(String name, String sex, int age)    {        super();        this.name = name;        this.sex = sex;        this.age = age;    }    public Person(String name, String sex, int age, String email)    {        super();        this.name = name;        this.sex = sex;        this.age = age;        this.email = email;    }    public String getName()    {        return name;    }    public void setName(String name)    {        this.name = name;    }    public String getSex()    {        return sex;    }    public void setSex(String sex)    {        this.sex = sex;    }    public int getAge()    {        return age;    }    public void setAge(int age)    {        this.age = age;    }    public String getEmail()    {        return email;    }    public void setEmail(String email)    {        this.email = email;    }    public String toString()    {        return "name = " + name + ",sex = " + sex + ",age = " + age                + ",email = " + email;    }    //重写equals    public boolean equals(Object o)    {        if (o == null)        {            return false;        }        if (this == o)        {            return true;        }        if (!(o instanceof Person))        {            return false;        }        Person employee = (Person) o;        return (this.age == employee.age) && (this.name.equals(employee.name));    }    //重写hashCode    public int hashCode()    {        int result = 17;        result = 37 * result + age;        result = 37 * result + name.hashCode();        return result;    }    public int compareTo(Person o)    {        return this.name.compareTo(o.getName());    }}

读书人网 >编程

热点推荐