设为首页 加入收藏

TOP

对象按照某属性升序,降序
2014-11-24 12:02:20 来源: 作者: 【 】 浏览:38
Tags:对象 按照 属性 降序
只是写了按照对象里面的id排序,如果按照其余的字段升降序也可以实现。
[java]
/**
* 个人信息排序
* @author wWX154783
*
*/
public class PersonSort
{
public static void main(String[] args)
{
List list = new ArrayList();
for (int i = 0; i < 10; i++)
{
Person person = new Person();
person.setId(new Random().nextInt(50));
list.add(person);
}
System.out.println("原始:\t" + list);
Collections.sort(list, new PersonOrderByIdAsc());
System.out.println("升序:\t" + list);
Collections.sort(list, new PersonOrderByIdDesc());
System.out.println("降序:\t" + list);
}
}
/* 人 */
class Person implements Comparator
{
private int id;
private int age;
private String name;
private String sex;
private String address;
public int compare(Person o1, Person o2)
{
return 0;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
public String getSex()
{
return sex;
}
public void setSex(String sex)
{
this.sex = sex;
}
public String getAddress()
{
return address;
}
public void setAddress(String address)
{
this.address = address;
}
@Override
public String toString()
{
return "id=" + this.id;
}
}
/* 按照person id升序 */
class PersonOrderByIdAsc extends Person
{
@Override
public int compare(Person o1, Person o2)
{
if (o1.getId() > o2.getId())
{
return 1;
}
else if (o1.getId() < o2.getId())
{
return -1;
}
else
{
return 0;
}
}
}
/* 按照person id降序 */
class PersonOrderByIdDesc extends Person
{
@Override
public int compare(Person o1, Person o2)
{
if (o1.getId() < o2.getId())
{
return 1;
}
else if (o1.getId() > o2.getId())
{
return -1;
}
else
{
return 0;
}
}
}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇JAVA集合详解(Collection和Map接.. 下一篇策略模式 和 模版方法模式(Templa..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: