对于没有排序功能的集合来说,都可以使用java.util.Collections.sort()方法进行排序,它除了集合对象以外,还需要提供一个比较器。如果列表中的元素全部都是相同的类型,并且这个类实现了Comparable接口,就可以简单的调用Collections.sort()方法,如果这个类没有实现comparable接口,那么可以创建一个比较器传递一个Comparator实例作为Sort()的第二个参数进行排序,另外,如果不想使用默认的分类
顺序进行排序,同样也可以传递一个Comparator实例作为参数来进行排序。package Bible001;
import java.util.*;
//类通过实现comparable接口进行排序和利用创建比较器进行排序。
public class SortTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<Student> list=new ArrayList<Student>();
list.add(new Student("stu001",21));
list.add(new Student("stu003",29));
list.add(new Student("stu002",25));
list.add(new Student("stu004",23));
System.out.println("--------原始顺序---------");
for(Iterator<Student> it=list.iterator();it.hasNext();)
System.out.println(it.next().toString());
System.out.println("---------默认
排列---------");
Collections.sort(list);
for(Iterator<Student> it=list.iterator();it.hasNext();)
System.out.println(it.next().toString());
System.out.println("---------降序排列-----");
Comparator<Student> comp=Collections.reverseOrder();
Collections.sort(list,comp);
for(Iterator<Student> it=list.iterator();it.hasNext();)
System.out.println(it.next().toString());
System.out.println("---------名字排序----------");
Collections.sort(list,new Comparator<Student>(){
@Override
public int compare(Student s1, Student s2) {
// TODO Auto-generated method stub
return s1.getName().compareTo(s2.getName());
}
});
for(Iterator<Student> it=list.iterator();it.hasNext();)
System.out.println(it.next().toString());
}
}
class Student implements Comparable<Student>{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
private int age;
public Student(String name,int age){
this.name=name;
this.age=age;
}
@Override
public int compareTo(Student stu) {
// TODO Auto-generated method stub
if(this.age>stu.age)
return 1;
else if(this.age<stu.age)
return -1;
else
return 0;
}
public String toString(){
return name+‘_‘+age;
}
}
输出:
--------原始顺序---------
stu001_21
stu003_29
stu002_25
stu004_23
---------默认排列---------
stu001_21
stu004_23
stu002_25
stu003_29
---------降序排列-----
stu003_29
stu002_25
stu004_23
stu001_21
---------名字排序----------
stu001_21
stu002_25
stu003_29
stu004_23
架构(三层架构)、框架(MVC)、设计模式三者异同点,布布扣,bubuko.com
架构(三层架构)、框架(MVC)、设计模式三者异同点
评论列表(0条)