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了。例子比较简单,耐心看,其实很好理解