Java中的两个常用排序工具类Arrays和Collections介绍

java中的排序工具主要有两个Arrays和Collections。

一、Arrays

Arrays类位于 java.util 包中,主要包含了操纵数组的各种方法。

1、Arrays.sort(Object[] array):

对数组按照升序排序

package com.homyit.array;

import java.util.Arrays;

public class Array1<a> {
    public static void main(String[] args) {
        int[] a = new int[]{41,42,54,31,57,43};
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
    }
}

[41, 42, 54, 31, 57, 43]
[31, 41, 42, 43, 54, 57]

2、Arrays.sort(Object[] array, int from, int to):

对数组元素指定范围进行排序(排序范围是从元素下标为from,到下标为to-1的元素进行排序,与上面方法类似,指定了起始索引和终止索引

3、Arrays.fill(Object[] array,Object object):

可以为数组元素填充相同的值,填充个数为array的长度

package com.homyit.array;

import java.util.Arrays;

public class Array1<a> {
    public static void main(String[] args) {
        int[] a = new int[]{41,42,54,31,57,43};
        System.out.println(Arrays.toString(a));
        Arrays.fill(a,40);
        System.out.println(Arrays.toString(a));
    }
}

[41, 42, 54, 31, 57, 43]
[40, 40, 40, 40, 40, 40]

4、Arrays.fill(Object[] array,int from,int to,Object object):

对数组的部分元素填充一个值,从起始位置到结束位置,取头不取尾,与上同

5、Arrays.toString(Object[] array):

返回数组的字符串形式

package com.homyit.array;

import java.util.Arrays;

public class Array1 {
    public static void main(String[] args) {
        int[] a = new int[]{41,42,54,31,57,43};
        System.out.println(Arrays.toString(a));
        Arrays.fill(a,40);
        System.out.println(Arrays.toString(a));
    }
}

[41, 42, 54, 31, 57, 43]

6、Arrays.deepToString(Object arrays):

返回多维数组的字符串形式。

package com.homyit.array;

import java.util.Arrays;

public class Array1<a> {
    public static void main(String[] args) {
        int [][]a = new int [][]{{1,2,3},{4,5,6},{7,8,9}};
        System.out.println(Arrays.deepToString(a));
    }
}

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

7、Arrays.binarySearch(Object[] array,element);

在数组array中查找指定的元素。并返回指定元素下标的索引值

package com.homyit.array;

import java.util.Arrays;

public class Array1<a> {
    public static void main(String[] args) {
        int [] a = new int []{43,23,54,12,65};
        int search = Arrays.binarySearch(a, 54);
        System.out.println(search);
    }
}

二、Collections

Collections是针对集合类的一个帮助类,它提供了很多静态方法实现了对各种集合的排序,搜索和线程安全等操作。

1.shuffle(element):洗牌方法,将当前集合内的数据进行随机排序。

package com.homyit.array;


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

public class Array1<a> {
    public static void main(String[] args) {
        List list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        Collections.shuffle(list);
        for (Object i: list) {
            System.out.println(i);
        }

    }
}

2
5
1
3
4

2.reverse(element):逆序排序,对当前集合的元素按照相反的顺序进行排序

package com.homyit.array;


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

public class Array1<a> {
    public static void main(String[] args) {
        List list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        list.add(5);
        Collections.reverse(list);
        for (Object i: list) {
            System.out.println(i);
        }

    }
}

5
4
3
2
1

3.sort(element):对当前集合进行升序排序

package com.homyit.array;


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

public class Array1<a> {
    public static void main(String[] args) {
        List list = new ArrayList<Integer>();
        list.add(1);
        list.add(5);
        list.add(4);
        list.add(3);
        list.add(2);
        Collections.sort(list);
        for (Object i: list) {
            System.out.println(i);
        }

    }
}

1
2
3
4
5

4.binarySearch(Collection,Object):查找指定集合中的元素,返回所查找元素的索引

package com.homyit.array;


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

public class Array1<a> {
    public static void main(String[] args) {
        List list = new ArrayList<Integer>();
        list.add(1);
        list.add(5);
        list.add(4);
        list.add(3);
        list.add(2);
        int i1 = Collections.binarySearch(list, 5);
        /*for (Object i: list) {
            System.out.println(i);
        }*/
        System.out.println(i1);
    }
}

-6

注意此处输出-6并不是只是在此5个元素的list集合中,而是在jvm初始化的时候,ArrayList有自己的默认长度,详情可以参见ArrayList源码

5、replaceAll(List list,Object old,Object new):

替换批定元素为某元素,若要替换的值存在刚返回true,反之返回false

package com.homyit.array;


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

public class Array1<a> {
    public static void main(String[] args) {
        List list = new ArrayList<Integer>();
        list.add(1);
        list.add(2);
        list.add(2);
        list.add(2);
        list.add(2);
        Collections.replaceAll(list,2,3);
        for (Object i: list) {
            System.out.println(i);
        }

    }
}

1
3
3
3
3

6、copy(List m,List n):

将集合n中的元素全部复制到m中,并且覆盖相应索引的元素

package com.homyit.array;


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

public class Array1<a> {
    public static void main(String[] args) {
        List list = new ArrayList<Integer>();
        list.add(1);
        list.add(4);
        list.add(5);
        list.add(6);
        list.add(7);
        List list2 = new ArrayList<Integer>();
        list2.add(3);
        list2.add(3);
        list2.add(3);
        list2.add(3);
        list2.add(3);
        Collections.copy(list,list2);
        for (Object i: list) {
            System.out.println(i);
        }

    }
}

3
3
3
3
3

你可能感兴趣的:(javase,java)