collections.sort();简单用法

在做集合的一些操作的时候,排序那是必不可少的,各种各样的排序多不胜数,一般我们在集合里面放的都是基本数据类型,这样的排序号做,但是在处理集合里面放置对象的时候,把对象排序这个就有点问题了,不过没关系,没有解决不了的问题,只有想不到的问题。这就用到了collections.sort()方法。

例子:两个对象根据id排序,大的在后,小的在前。

Sutdent.java

public class Student {
 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;
 }
}

main类

//创建对象st1并赋值

Student st1=new Student();
  st1.setId(1);
  st1.setName("wo1");

//创建对象st2并赋值

  Student st2=new Student();
  st2.setId(2);
  st2.setName("wo2");

//把两个对象添加到数组里面
  List li=new ArrayList();
  li.add(st2);
  li.add(st1);

//遍历li数组
  Iterator it=li.iterator();
  while(it.hasNext())
  {
   Student stu=(Student) it.next();
   System.out.println(stu.getId());
  }

//调用方法,完成排序,这里建MyComper类
  Collections.sort(li,new MyComper());
  System.out.println("排序后:");
  Iterator it2=li.iterator();
  while(it2.hasNext())
  {
   Student stu=(Student) it2.next();
   System.out.println(stu.getId());
   }

MyComper.java

//实现Comparator接口,重写compare方法为1时,换位置

public class MyComper implements Comparator{

 @Override
 public int compare(Student o1, Student o2) {
  // TODO Auto-generated method stub
  int stu1=o1.getId();
  int stu2=o2.getId();
  if(stu1>stu2)
  {
   return 1;
  }else
  {
   return 0;
  }
  
 }

}

运行main函数类,输出结果:

2

1

排序后:

1

2

这个例子其实很简单,就是调用collections.sort()方法,然后再写相应的方法,完成这样的功能,之后输出就ok了。例子比较简单,耐心看,其实很好理解

 

posted @ 2012-11-05 17:10  闭眼  阅读(216)  评论(0编辑  收藏  举报