1,sort函数,对一维数组元素,进行升序排列

用法: Arrays.sort(数组名称);

import java.util.Arrays;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a[]=new int[n];
		for(int i=0;i<n;i++)  //输入
		{
			a[i]=sc.nextInt();  
		}
		Arrays.sort(a);   //升序
		for(int i=0;i<n;i++) //输出
		{
			System.out.print(a[i]+" ");	
		}
	}
}

运行结果:

java sort vector 升序 java升序排序的函数_System

2,sort函数,对一维数组元素,进行降序排列

用Comparator

关于Integer包装类的介绍: 

java sort vector 升序 java升序排序的函数_System_02

用法:

//Comparator中只能写包装类(Integer,Character,Double等)
         所以用此方法时,数组元素必须是Integer类型。
Arrays.sort(a,new Comparator<Integer>() { 
            @Override                              
             public int compare(Integer a, Integer b) {
                 
                 return b-a;  //return a-b为升序
             }
   });

(1) 直接写

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		Integer a[]=new Integer[n];  //必须为Integer类型
		for(int i=0;i<n;i++)   //输入
		{
			a[i]=sc.nextInt(); 
		}
		Arrays.sort(a,new Comparator<Integer>() {  //降序
			@Override
			public int compare(Integer a, Integer b) {
				
				return b-a;  //降序(return a-b为升序)
			}
		});
		for(int i=0;i<n;i++)  //输出
		{
			System.out.print(a[i]+" ");	
		}
	}
}

 运行结果:

java sort vector 升序 java升序排序的函数_升序_03

(2)也可以这样写

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
	public static class cmp implements Comparator<Integer>{ //自定义比较类
		@Override
		public int compare(Integer o1,Integer o2)
		{
			return o2-o1;  //降序(return o1-o2为升序)
		}
	}
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		Integer a[]=new Integer[n];  //Integer类
		for(int i=0;i<n;i++)    //输入
		{
			a[i]=sc.nextInt();  
		}
		Arrays.sort(a,new cmp());  //sort函数
		for(int i=0;i<n;i++)    //输出
		{
			System.out.print(a[i]+" ");	
		}
	}
}

运行结果:

java sort vector 升序 java升序排序的函数_java_04

3,sort函数,对二维的第一列,进行升序排列

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main{
	public static class act{ //创建类
		int first;
		int second;
	}
	public static class cmp implements Comparator<act>{ //自定义比较类
		public int compare(act o1,act o2)
		{
			return o1.first-o2.first;
		}
	}
	public static void main(String[] args) {
		
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();

		act a[]=new act[n];    //数组是自己定义的act类型的
		for(int i=0;i<n;i++)  //输入
		{
			a[i]=new act();  //这个地方不要忘了
			a[i].first=sc.nextInt();  
			a[i].second=sc.nextInt();
		}
		Arrays.sort(a,new cmp());  //升序排列
		for(int i=0;i<n;i++)   //输出
		{
			System.out.print(a[i].first+" ");	
			System.out.print(a[i].second);
			System.out.println();
		}	
	}
}

运行结果:(按第一列,升序输出)

4,sort函数,对二维的2列,同时进行升序排列

import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class Main {
	public static class act{ //创建类
		int first;
		int second;
	}
	public static class cmp implements Comparator<act>{ //自定义比较类
		public int compare(act o1,act o2)
		{
			if(o1.first==o2.first)
			{
				return o1.second-o2.second; //second从小到大
			}
			return o1.first-o2.first;//first从小到大
		}
	}
	
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
	
		act a[]=new act[n];
		for(int i=0;i<n;i++)
		{
			a[i]=new act();
			a[i].first=sc.nextInt();  
			a[i].second=sc.nextInt();
		}
		
		Arrays.sort(a,new cmp());    //升序
		
		for(int i=0;i<n;i++)
		{
			System.out.println(a[i].first+" "+a[i].second);
		}
	}
}

运行结果如下:先按第1列升序,然后在第1列相同的内部,对第2列进行升序。

java sort vector 升序 java升序排序的函数_System_05