1. 比较器Comparator
2. 实现类
3.Person 对象
/*
* 文 件 名: 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());
}
}