int数组的排序
Arrays.sort()
package com.gkd.qdsx.day13;
import java.util.Arrays;
public class ArraySortDemo {
public static void main(String[] args) {
int s1 [] = {18,23,22,68,57,46,15};
System.out.println("----排序前----");
for (int s:s1) {
System.out.print(" "+s);
}
System.out.println();
System.out.println("----排序后----");
Arrays.sort(s1);
for (int s:s1) {
System.out.print(" "+s);
}
}
}
运行结果图
对象比较器
Comparable接口
定义一个学生类
package com.gkd.qdsx.day13;
public class Student implements Comparable<Student>{
private int number;
private String name;
private int age;
private double grede;
public Student(int number, String name, int age, double grede) {
super();
this.number = number;
this.name = name;
this.age = age;
this.grede = grede;
}
public Student() {
super();
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
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;
}
public double getGrede() {
return grede;
}
public void setGrede(double grede) {
this.grede = grede;
}
@Override
public String toString() {
return "学号:" + number + " 姓名:" + name + " 年龄:" + age + ", 成绩:" + grede;
}
@Override
public int compareTo(Student o) {
if (o==null) {
return -1;
}if (this.number<o.number) {
return -1;
}else if (this.number>o.number) {
return 1;
}
return 0;
}
}
Tast:
package com.gkd.qdsx.day13;
import java.util.Arrays;
public class ArraySortDemo {
public static void main(String[] args) {
Student[] students = new Student[6];
students[0] = new Student(1801,"张三", 18, 88);
students[1] = new Student(1803,"李四", 78, 68);
students[2] = new Student(1810,"王五", 32, 67);
students[3] = new Student(1820,"赵丽", 45, 85);
students[4] = new Student(1812,"田七", 23, 75);
students[5] = new Student(1806,"宋八", 66, 71);
for (Student s:students) {
System.out.println(s.toString());
}
System.out.println("-----------------------");
Arrays.sort(students, new ComparatorDemo());
// Arrays.sort(students);
for (Student s:students) {
System.out.println(s.toString());
}
}
}
Comparator接口
优点不用修改源代码
package com.gkd.qdsx.day13;
import java.util.Comparator;
public class ComparatorDemo implements Comparator<Student>{
@Override
public int compare(Student o1, Student o2) {
if(o1.getGrede() < o2.getGrede()){
return -1;
}else if(o1.getGrede() > o2.getGrede()){
return 1;
}
return 0;
}
}