免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1265 | 回复: 0
打印 上一主题 下一主题

ArrayList中的数据排序--java对象排序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-05 21:28 |只看该作者 |倒序浏览


参考:
http://zjnubridge.blogdriver.com/zjnubridge/1226114.html
[/url]

ArrayList中的数据排序--java对象排序

常常遇到数组排序的问题.比如我有一个Person类,它的实例对象存储在ArrayList数组中,现在要把ArrayList数组中的Person对象按照年龄和职位排序.
其实这种情况经常遇到.
下面给出源代码:
1:Person.java文件:-------------------------------
public class Person{
String name;
int age;
int position;

public Person(String name,int age,int position){
  this.name = name;
  this.age = age;
  this.position = position;
  
}
public int getAge() {
  return age;
}
public void setAge(int age) {
  this.age = age;
}
public String getName() {
  return name;
}
public void setName(String name) {
  this.name = name;
}
public int getPosition() {
  return position;
}
public void setPosition(int position) {
  this.position= position;
}
}
2:Mycomparator.java-------------------------------
//实现Comparator接口,也就是定义排序规则,你几乎可以定义任何规则
//规则:首先根据年龄排序,如果年龄相同,则根据职位排序
package com.infoearth;
import java.util.*;
public class Mycomparator implements Comparator{
   
    // 实现Comparator接口中的compare方法
    public int compare(Object o1,Object o2) {

       Person p1=(Person)o1;
       Person p2=(Person)o2;
       if(p1.age         return 1;
       else if(p1.age == p2.age&&p1.position         return 1;
       else
          return 0
   }
}

3:ListSort.java------------------------------------
// 实现List排序
package com.infoearth;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class ListSort {
public static void main(String[] args){
  ArrayList list = new ArrayList();
  list.add(new Person("lcl",28,1));
  list.add(new Person("fx",23,1));
  list.add(new Person("fx22",23,2));
  list.add(new Person("wqx",29,3));
  Comparator comp = new Mycomparator();
  Collections.sort(list,comp);
  for(int i = 0;i  Person p = (Person)list.get(i);
   System.out.println(p.getName());
  }

}
}


本文来自ChinaUnix博客,如果查看原文请点:[url]http://blog.chinaunix.net/u3/95708/showart_1919122.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP