数组排序
Arrays.sort(int[] x,int fromIndex,int fromIndex)
fromIndex到fromIndex-1的数组进行排序
自定义类排序
1.comparator,重写排序方法的办法
package lx;
import java.util.Arrays;
import java.util.Comparator;
class point{
int x,y;
public point(){}
public point(int x,int y){
this.x = x;
this.y = y;
}
}
class mycompara implements Comparator<point>{
@Override
public int compare(point o1, point o2) {
if(o1.x!=o2.x) return o1.x-o2.x;
else return o1.y-o2.y;
}
}
public class Sort {
public static void main(String[] args) {
point[] x=new point[5];
for(int i = 0;i < x.length; i++){
x[i] = new point();
}
x[0].x=1;x[0].y=2;
x[1].x=4;x[1].y=2;
x[2].x=6;x[2].y=2;
x[3].x=2;x[3].y=3;
x[4].x=1;x[4].y=7;
Arrays.sort(x,new mycompara());
for(int i=0;i<=4;i++){
System.out.println(x[i].x+" "+x[i].y);
}
}
}
2.重载类的办法
package lx;
import java.util.Arrays;
import java.util.Comparator;
class point implements Comparable<point>{
int x,y;
public point(){}
public point(int x,int y){
this.x = x;
this.y = y;
}
@Override
public int compareTo(point p1) {
if(x !=p1.x) return x-p1.x;
else return y-p1.y;
}
}
public class Sort {
public static void main(String[] args) {
point[] x=new point[5];
for(int i = 0;i < x.length; i++){
x[i] = new point();
}
x[0].x=1;x[0].y=2;
x[1].x=4;x[1].y=2;
x[2].x=6;x[2].y=2;
x[3].x=2;x[3].y=3;
x[4].x=1;x[4].y=7;
Arrays.sort(x);
for(int i=0;i<=4;i++){
System.out.println(x[i].x+" "+x[i].y);
}
}
}
3.lambda的办法
package lx;
import java.util.Arrays;
import java.util.Comparator;
class point{
int x,y;
public point(){}
public point(int x,int y){
this.x = x;
this.y = y;
}
}
public class Sort {
public static void main(String[] args) {
point[] x=new point[5];
for(int i = 0;i < x.length; i++){
x[i] = new point();
}
x[0].x=1;x[0].y=2;
x[1].x=4;x[1].y=2;
x[2].x=6;x[2].y=2;
x[3].x=2;x[3].y=3;
x[4].x=1;x[4].y=7;
Arrays.sort(x,(a,b)->(a.x!=b.x?a.x-b.x:a.y-b.y));
for(int i=0;i<=4;i++){
System.out.println(x[i].x+" "+x[i].y);
}
}
}