在Java中排序数组

时间:2020-02-23 14:35:35  来源:igfitidea点击:

在本教程中,我们将看到如何在Java中对数组进行排序。

有各种方法可以在Java中排序数组。
我们可以实现不同的排序算法以对数组进行排序。

我们可以使用arrays.sort方法来排序Java中的数组。
有各种重载(overloading)版本的数组排序方法。

Java排序阵列

让我们看看一些示例来在Java中对数组进行排序。

排序数字数组

排序数字数组非常容易。
我们只需使用array.sort方法来排序数字数组。

package org.igi.theitroad;
 
import java.util.Arrays;
 
public class SortArrayInt {
 
	public static void main(String[] args) {
		int arr[]={7,33,22,11,20,5,2};
		System.out.println("Before Sorting");
		System.out.println("===============");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+ " ");
		}
		
		Arrays.sort(arr);
		
		System.out.println();
		System.out.println("===============");
		System.out.println("After Sorting");
		System.out.println("===============");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
	}
}

运行上面的代码时,我们将得到以下输出:

Before Sorting
===============
7 33 22 11 20 5 2
===============
After Sorting
===============
2 5 7 11 20 22 33

排序字符串数组

排序一系列字符串也很容易。
我们只需使用array.sort方法来排序字符串数组。
这将按升序排序字符串数组。

package org.igi.theitroad;
 
import java.util.Arrays;
 
public class SortArrayString {
 
	public static void main(String[] args) {
		String arr[]={"Martin","Andy","John","Mary"};
		System.out.println("Before Sorting");
		System.out.println("===============");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+ " ");
		}
		
		Arrays.sort(arr);
		
		System.out.println();
		System.out.println("===============");
		System.out.println("After Sorting");
		System.out.println("===============");
		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i]+" ");
		}
	}
}

运行上面的代码时,我们将得到以下输出:

Before Sorting
===============
Martin Andy John Mary
===============
After Sorting
===============
Andy John Martin Mary

排序自定义对象数组

对于自定义对象的排序阵列,自定义对象应该实现可比接口,然后将其传递给数组。

排序方法。
我们还可以创建比较器对象并将其传递给数组。

排序方法。

package org.igi.theitroad;
 
import java.util.Arrays;
 
public class Employee implements Comparable<Employee>{
	String name;
	int age;
	
	Employee(String name,int age)
	{
		this.name=name;
		this.age=age;
	}
	
	public static void main(String[] args)
	{
		Employee e1=new Employee("Martin", 20);
		Employee e2=new Employee("Andy", 18);
		Employee e3=new Employee("John", 22);
		Employee e4=new Employee("Mary", 21);
		Employee[] empArray={e1,e2,e3,e4};
		
		System.out.println("Before Sorting");
		System.out.println("===============");
		for (int i = 0; i < empArray.length; i++) {
			System.out.print(empArray[i]+ " ");
		}
		
		Arrays.sort(empArray);
		
		System.out.println();
		System.out.println("===============");
		System.out.println("After Sorting");
		System.out.println("===============");
		for (int i = 0; i < empArray.length; i++) {
			System.out.print(empArray[i]+" ");
		}
	}
	
	public String toString()
	{
		return "[ name="+name+" age="+age+" ]";
	}
	
	@Override
	public int compareTo(Employee e) {
		return name.compareTo(e.name);
	}
}

运行上面的代码时,我们将得到以下输出:

Before Sorting
===============
[ name=Martin age=20 ] [ name=Andy age=18 ] [ name=John age=22 ] [ name=Mary age=21 ]
===============
After Sorting
===============
[ name=Andy age=18 ] [ name=John age=22 ] [ name=Martin age=20 ] [ name=Mary age=21 ]