java数组排序——通过java.util.Arrays的方法。

导读:本篇文章讲解 java数组排序——通过java.util.Arrays的方法。,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

 最简单的数组排序,不用自己写逻辑,一个方法搞定,使用 java.util.Arrays 的方法。

1、通过 Arrays.sort(数组或者 Arrays.parallelSort(数组) 给数组正序排序(后者jdk1.8新增方法,数据量大使用更稳定)。

2、通过 Arrays.sort(数组,起始位置,结束位置或者 Arrays.parallelSort(数组,起始位置,结束位置) 给数组指定位置正序排序(后者jdk1.8新增方法,数据量大使用更稳定)。

3、通过 Arrays.sort(引用类型数组 , Collections.reverseOrder()
     或者 Arrays.parallelSort(引用类型数组 , Collections.reverseOrder()) 给数组倒序排序。(后者jdk1.8新增方法,数据量大使用更稳定)。 

测试代码和注释:

1、数组正序排序:

import java.util.Arrays;
import java.util.Collections;
import org.junit.Test;

public class demo1 {
	/**
	 * 1、将数组正序排序(如int类型,从小到大排序)。
	 * 使用Java的Arrays类sort()或者  Arrays.parallelSort();方法,更方便快捷。
	 */
	@Test
	public void test1(){
		/**
		 * 方法1、Arrays.sort(int[] a)  
		 * 或者 jdk1.8新增方法:  Arrays.parallelSort(int[] a);
		 * 比较:后者相比前者更稳定。
		 * 这种形式是对一个数组的所有元素正序排序。
		 */
		int[] arr = {-1,-2,1,2,9,8,7,-3,0};
		//Arrays.sort(arr);		//对arr数组所有元素正序排序。
		Arrays.parallelSort(arr);	//对arr数组所有元素正序排序。jdk1.8新增方法,相比Arrays.sort(arr)更稳定。
		
		String str = Arrays.toString(arr);  //将数组转换成Sring字符串,方便打印查看。
		System.out.println("结果1:"+str);    //结果:[-3, -2, -1, 0, 1, 2, 7, 8, 9]
		
		/*------------------------------分割线-----------------------------------------*/
		
		/**
		 * 方法2、Arrays.sort(int[] a, int fromIndex, int toIndex)
		 * 或者jdk1.8新增方法:Arrays.parallelSort(int[] a, int fromIndex, int toIndex)
		 * 比较:后者相比前者更稳定。
		 * 这种形式是对数组指定角标排序,也就是对数组a的角标从‘fromIndex’到‘toIndex’的元素排序。
		 */
		int[] arr2 = {-1,-2,1,2,9,8,7,-3,0};
		//Arrays.sort(arr2,2,7);		//将int数组从角标第2位开始到第7位(不包含第7位)从小到大排序。
		Arrays.parallelSort(arr2,2,7);	//将int数组从角标第2位开始到第7位(不包含第7位)从小到大排序。java1.8新增方法,后者相比前者更稳定。
		
		String str2 = Arrays.toString(arr2);//将数组转换成Sring字符串,方便打印查看。
		System.out.println("结果2:"+str2);	//结果2:[-1, -2, 1, 2, 7, 8, 9, -3, 0]
	}	
}

2、数组倒序排序:

import java.util.Arrays;
import java.util.Collections;
import org.junit.Test;

public class demo2 {
		/**
	 * 2、将数组倒序排序(如int类型,从大到小排序)。
	 * 最简单方法:直接在sort方法或者parallelSort方法中传入java中提供的逆序比较器,Collections.reverseOrder();
	 * API的解释:
		返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
		(自然顺序是通过对象自身的 compareTo 方法强行排序的。)
		此方法允许使用单个语句,以逆自然顺序对实现了 Comparable 接口的对象 collection(或数组)进行排序(或维护)
	 */
	@Test
	public void test2(){
		Integer[] arr = {-1,-2,1,2,9,8,7,-3,0};
		String[] b = {"ac","b","d","a"};
		
		/**
		 * 注意:使用java中提供的逆序比较器 Collections.reverseOrder()给数组排序,定义数组必须是引用类型。
		 */
		
		//Arrays.sort(arr,Collections.reverseOrder());	//Integer数组 arr,倒序
		//Arrays.sort(b,Collections.reverseOrder());	//String 数组 b,倒序。

		Arrays.parallelSort(arr,Collections.reverseOrder());	//Integer数组 arr,倒序
		Arrays.parallelSort(b,Collections.reverseOrder());	//String 数组 b,倒序。
		
		String str = Arrays.toString(arr);		//将数组转换成Sring字符串,方便打印查看。
		System.out.println("Integer结果:"+str);    	//Integer结果:[9, 8, 7, 2, 1, 0, -1, -2, -3]
		String br = Arrays.toString(b);			//将数组转换成Sring字符串,方便打印查看。
		System.out.println("String结果:"+br);		//String结果:[d, b, ac, a]
	}
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/15951.html

(0)
小半的头像小半

相关推荐

极客之家——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!