ComparatorCollections做对象排序的方法
来源:优易学  2011-12-30 10:18:26   【优易学:中国教育考试门户网】   资料下载   IT书店
 通过代码来看看吧
  1.Employee 对象
  package test;
  public class Employee {
  private int id ;
  private String name;
  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;
  }
  }
  2.对象比较器
  package test;
  import java.util.Comparator;
  public class DemoComparator implements Comparator {
  public int compare(Object o1, Object o2) {
  if (((Employee)o1).getId() > ((Employee)o2).getId()) {
  return -1;//DESC
  } else if (((Employee)o1).getId() < ((Employee)o2).getId()) {
  return 1;//ASC
  } else {
  return 0;
  }
  }
  }
  3.测试类
  package test;
  import java.util.Vector;
  import java.util.Collection;
  import java.util.Collections;
  import java.util.Comparator;
  import java.util.List;
  public class testVector {
  /**
  * @param args
  */
  public static void main(String[] args) {
  List vc = getEmList();
  System.out.println("===========before sort====================");
  for(int j =0;j < vc.size();j++){
  Employee em = (Employee)vc.get(j);
  System.out.println("id :" + em.getId() + " name:" + em.getName());
  }
  DemoComparator com = new DemoComparator();
  Collections.sort(vc, com);
  System.out.println("===========after sort====================");
  for(int j =0;j < vc.size();j++){
  Employee em = (Employee)vc.get(j);
  System.out.println("id :" + em.getId() + " name:" + em.getName());
  }
  }
  //
  public static List getEmList(){
  //这里用Vector做测试。当然你可以使用list所有的子类。
  List v = new Vector(); Employee em = null;
  em = new Employee();
  em.setId(59);
  em.setName("test001");
  v.add(em);
  em = new Employee();
  em.setId(23);
  em.setName("test002");
  v.add(em);
  for(int i = 30; i < 40; i++){
  em = new Employee();
  em.setId(i);
  em.setName("chenfeng" + i);
  v.add(em);
  }
  return v;
  }
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训