Java中Arrays类

来源:互联网 发布:淘宝评价时间是多久 编辑:程序博客网 时间:2024/05/18 03:52

Java中的Arrays类是实现对数组操作的工具类,包括了各种各样的静态方法,可以实现数组的排序和查找,数组的比较和对数组增加元素,数组的复制和将数组转换成字符串等功能。这些方法都有对基本类型的重载方法.
当我们需要对数组进行排序时,可以使用sort()方法对整个数组或部分数组进行排序,例如,下面的代码对数值类型的数组和字符串型数组进行排序。

int[] arr = {6,5,1,9,78,25,31,7};

Arrays.sort(arr);
排序后的最后结果为:[1,5,6,7,9,25,31,78],默认是升序排序。

char[] chars = {'a','A','F','3','S'};Arrays.sort(chars,1,3);

调用sort(chars,1,3)对从chars[1]到chars[3-1]的数组部分进行排序.
当我们需要在数组中查询某一个关键字时,可以使用二分查找法(binary Search方法).数组必须是按升序排列好的,如果数组中不存在关键字,方法将会返回((-(插入点)-1).例如,下面的代码在数组和字符数组中查找关键字:

int arr = {1,2,3,4,6,7};System.out.println(Arrays.binarySearch(arr,4));//返回值为3System.out.println(Arrays.binarySearch(arr,5));//返回值-5

可以采用equals()方法检测两个数组是否相等,如果他们的内容相同,那么这两个数组相等:

int arr1 = {1,2,3,4};int arr2 = {1,2,3,4};int arr3 = {2,3,1,4};System.out.println(Arrays.equals(arr1,arr2));//trueSystem.out.println(Arrays.equals(arr1,arr3));//false
TestArrays.java代码:
package mooc;import java.util.Arrays;public class TestArrays {    //输出数组    public static void output(int[] array)    {        if(array != null)        {            for(int i = 0; i < array.length; i++)                System.out.println(array[i] + " ");        }        System.out.println();    }    public static void main(String[] args)    {        int[] array = new int[5];        //填充数组        Arrays.fill(array, 5);        System.out.println("填充数组:Arrays.fill(array,5):");        TestArrays.output(array);        //将数组的第2个和第3个元素赋值为8        Arrays.fill(array, 2,4,8);        TestArrays.output(array);        int[] array1 = {7,8,3,2,12,6,3,5,4};        //对数组的第2个到第6个进行升序排序        Arrays.sort(array1,2,7);        System.out.println("对数组的第2个到第6个元素进行排序:");        TestArrays.output(array1);        //对整个数组进行排序        Arrays.sort(array1);        System.out.println("对整个数组进行排序:");        TestArrays.output(array1);        //比较数组元素是否相等        System.out.println("比较数组元素是否相等:Arrays.equals(array,array1):" + "\n" + Arrays.equals(array, array1));        int[] array2 = array1.clone();        System.out.println("克隆后数组元素是否相等:Arrays.equals(array1,array2):" + "\n" + Arrays.equals(array1, array2));        //使用二分搜索算法查找指定元素所在的下标(必须是排序好的,否则结果不正确)        Arrays.sort(array1);        System.out.println("元素3在array1中的位置:Arrays.binarySearch(array1,3):" + "\n" + Arrays.binarySearch(array1, 3));        //如果不存在就返回负数        System.out.println("元素9在array1中的位置:Arrays.binarySearch(array1, 9):"+"\n"+Arrays.binarySearch(array1, 9));    }   }

输出结果:
这里写图片描述
这里写图片描述
这里写图片描述

package mooc;import java.util.Arrays;import java.util.Scanner;public class Arr {    public static void main(String[] args)    {        Scanner input = new Scanner(System.in);        int count = input.nextInt();        String[] bufs = new String[count];        for(int i = 0;i < count; i++)        {            bufs[i] = new String(input.next());        }        Arrays.sort(bufs);        for(String str : bufs)            System.out.println(str);        input.close();    }}

java.util包:http://www.yiibai.com/java/util/

0 0
原创粉丝点击