package net.assist.action.handle;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class MySort {
public static void main(String[] args) {
Student s1 = new Student();
s1.setAge(12);
s1.setName("zhangsan");
Student s2 = new Student();
s2.setAge(13);
s2.setName("lisi");
Student s3 = new Student();
s3.setAge(10);
s3.setName("wangwu");
List<Student> list = new ArrayList<Student>();
list.add(s1);
list.add(s2);
list.add(s3);
// 原顺序
for (Student s : list) {
System.err.println(s.getAge());
}
Student[] students = new Student[list.size()];
Arrays.sort(list.toArray(students));
// 内部排序后
for (Student s : students) {
System.err.println(s.getAge());
}
// 外部排序
Collections.sort(list, new StudentComparator());
for (Student s : list) {
System.err.println(s.getAge());
}
}
}
/**
* 内部排列
*/
class Student implements Comparable<Student> {
private String name;
private int age;
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;
}
/**
* 内部排序
*/
@Override
public int compareTo(Student o) {
if (this.age > o.getAge()) {
return 1;
} else if (this.age < o.getAge()) {
return -1;
}
return 0;
}
}
/**
* 外部排序
*/
class StudentComparator implements Comparator<Student> {
@Override
public int compare(Student o1, Student o2) {
if (o1.getAge() > o2.getAge()) {
return 1;
} else if (o1.getAge() < o2.getAge()) {
return -1;
}
return 0;
}
}
java 排序
最新推荐文章于 2024-05-17 13:43:01 发布