首页 > 编程 > Java > 正文

JAVA排序方法

2019-11-08 03:05:05
字体:
来源:转载
供稿:网友

数组排序

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) { // 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.重载类的办法

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) { // 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的办法

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) { // 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); } }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表