collections.sort();简单用法
在做集合的一些操作的时候,排序那是必不可少的,各种各样的排序多不胜数,一般我们在集合里面放的都是基本数据类型,这样的排序号做,但是在处理集合里面放置对象的时候,把对象排序这个就有点问题了,不过没关系,没有解决不了的问题,只有想不到的问题。这就用到了collections.sort()方法。
例子:两个对象根据ID排序,大的在后,小的在前。
Sutdent.java
公共类Student {
private int id;
私人字符串名称;
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;
}
}
主类
//创建对象ST1并赋值
学生st1 =新生();
st1.setId(1);
st1.setName( “WO1”);
//创建对象ST2并赋值
学生st2 =新生();
st2.setId(2);
st2.setName( “WO2”);
//把两个对象添加到数组里面
列表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
//实现比较接口,重写比较方法为1时,换位置
公共类MyComper实现比较器{
@Override
public int compare(Student o1,Student o2){
// TODO自动生成的方法存根
int stu1 = o1.getId();
int stu2 = o2.getId();
如果(stu1> stu2)
{
return 1;
} else
{
return 0;
}
}
}
运行主函数类,输出结果:
2
1
排序后:
1
2