必威体育Betway必威体育官网
当前位置:首页 > IT技术

Arrays.sort()和Collections.sort()的用法

时间:2019-08-27 00:42:13来源:IT技术作者:seo实验室小编阅读:52次「手机版」
 

arrays.sort

Comparable 用作默认的比较方式 

Comparator 用作自定义的比较方式,当默认的比较方式不适用时或者没有提供默认的比较方式,使用Comparator就非常有用。

像Arrays和Collections中的排序方法,当不指定Comparator时使用的就是默认排序方式,也就是使用Comparable。指定Comparator时就是使用提供的比较器。 

sort(Object[]) 所有的对象都必须实现Comparable接口,它用来确定对象之间的大小关系 

sort(Object[], Comparator) 对象不必实现Comparable接口,由Comparator来确定对象之间的大小关系

( 一 arrays.sort())

java中的Arrays类的sort()方法,是Arrays类的静态方法,在需要对数组进行排序时非常好用。

1. Arrays.sort(int[] a)

对数组中的所有元素进行排序,由小到大排序

import java.util.Arrays;

public class Main {

//Arrays.sort(int[] a)
	public static void main(String[] args) {
		int[] a={4,5,3,1,8};
		Arrays.sort(a);
		for(int i=0;i<a.length;i++)
		{
			System.out.print(a[i]+" ");//结果  1 3 4 5 8 
		}
//System.out.println(Arrays.toString(a));

String[] array1=new String[]{"a","A","g","Z"};
       Arrays.sort(array1);
       System.out.println(Arrays.toString(array1));//先大写后小写 A Z a g
  
       Arrays.sort(array1,String.CASE_INsensitive_order);
       System.out.println(Arrays.toString(array1));//字符串字母表排序 忽略大小写

       integer[] list={3,4,2,6,8};
       Arrays.sort(list,Collections.reverseOrder());
       System.out.println(Arrays.toString(list));//倒序(由大到小)输出  8 6 4 3 2


	}

}
2. Arrays.sort(int[] a,int fromIndex,int toIndex)

 对数组部分排序,对数组a的下标从fromIndex到toIdex-1进行排序,注意:下标为toIndex的元素不参与排序

import java.util.Arrays;

public class Main {

//Arrays.sort(int[] a,int fromIndex,int toIndex)
	public static void main(String[] args) {
		int[] a={5,3,1,6,8,9,3};
		Arrays.sort(a,0,3);
		for(int i=0;i<a.length;i++)
		{
			System.out.print(a[i]+" ");// 结果为 1 3 5 6 8 9 3 只对下标为 0 1 2的进行排序
		}

	}

}
3.Arrays.sort(Integer[] a,Comparator cmp)

  Arrays.sort()只能由小到大排序 ,那么 如何由大到小排序呢?

import java.util.Arrays;
import java.util.Comparator;

public class Main{

//利用 Arrays.sort(Integer[] a,Comparator cmp) 进行由大到小排序
	public static void main(String[] args) {
		Integer[] a={4,9,1,3,5,8};//注意 Integer
		Comparator cmp=new MyComparator();
		Arrays.sort(a,cmp);
		for(int i=0;i<a.length;i++)
		{
			System.out.print(a[i]+" ");
		}

	}
	public static class MyComparator implements Comparator<Integer>
	{

		public int compare(Integer arg0, Integer arg1) {
			if(arg0<arg1)
				return 1;
			else if(arg0>arg1)
				return -1;
			else
				return 0;
		}
		
	}

}

( 二 collections.sort())

1.使用Collections.sort(List<> list)需要使用List

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;

public class Main9 {

//Collections.sort()
	public static void main(String[] args) {
		int a=1,b=7,c=4,d=5;
		List<Integer> list=new ArrayList<Integer>();
		list.add(a);list.add(b);list.add(c);list.add(d);
		Comparator cmp=new MyComparator();
		Collections.sort(list,cmp);
		Iterator<Integer> it=list.iterator();
		while(it.hasNext())
		{
			System.out.print(it.next()+" ");
		}

	}
	public static class MyComparator implements Comparator<Integer>
	{

		public int compare(Integer arg0, Integer arg1) {
			if(arg0<arg1)
				return 1;
			else if(arg0>arg1)
				return -1;
			else
				return 0;
		}
		
	}

}

相关阅读

Arrays.sort()

之前做笔试有个排序的问题,可以将字符串转换成字符数组再进行排序,之后用toString()方法在转为字符串,但当时没有想到,特此记录下来。

collections.sort()默认排序规则

默认按ASCII码排序,一位一位的比较,应该排了3次第一次比较第一位全部是a,所以顺序没变第二次第二位排序[a0, a1, a12, a11, a10, a2,

java中关于Arrays.sort()的三种用法

Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常的好用。 但是sort()的参数有好几种,下

Java中Collections.sort()的使用!

请注明出处:http://blog.csdn.net/qq_23179075/article/details/78753136 Java中Collections.sort()的使用! 在日常开发中,很多时候

深入理解Arrays.sort()

深入理解Java 中的Arrays.sort()方法 Java的Arrays类中有一个sort()方法,该方法是Arrays类的静态方法,在需要对数组进行排序时,非常

分享到:

栏目导航

推荐阅读

热门阅读