Java排序方法

来源:互联网 发布:淘宝衣服好评语大全 编辑:程序博客网 时间:2024/06/05 11:50

数组排序(内置排序)

Arrays.sort(int[] x,int fromIndex,int fromIndex)fromIndex到fromIndex-1的数组进行排序

自定义类排序

1、comparator重写排序方法的办法

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) {        // TODO Auto-generated method stub        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) {        // TODO Auto-generated method stub        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、重载类的办法

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) {        // TODO Auto-generated method stub        if(x !=p1.x) return x-p1.x;        else return y-p1.y;    }}public class Sort {     public static void main(String[] args) {        // TODO Auto-generated method stub        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的办法

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) {        // TODO Auto-generated method stub        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);        }    }}
原创粉丝点击