java array包_java:数组操作工具类 java.util.Arrays包 主要方法详解

  • Post author:
  • Post category:java


Arrays类位于Java.util包下,是一个对数组操作的工具类,现将Arrays类中的方法做一个总结(JDK版本:1.6.0_34)。Arrays类中的方法可以分为八类:

sort(对数组排序)

binarySearch(二分法查找数组中的元素)

equals(比较两个数组是否相等)

fill(对数组中的指定位置填充相同的内容)

copyOf(数组拷贝)

asList(将数组转换为一个固定的List对象)

hashCode(计算数组的哈希值)

toString(以特定格式输出数组)

(1)简单例子示范

1.array转化为List ,利用java.util.Arrays中的asList方法

Integer []arr = {1,2,3};

System.out.println(arr);

List list = Arrays.asList(arr);

System.out.println(list);

输出结果:

[Ljava.lang.Integer;@659e0bfd

[1, 2, 3]

2.array的排序问题,利用java.util.Arrays中的sort方法排序

Integer a[]={1,5,3,8,4};

Arrays.sort(a);//实现了对数组从小到大的排序

List aList = Arrays.asList(a);

System.out.println(Arrays.asList(aList));

3.数组元素的定位查找,返回数组的下标

使用java.util.Arrays中的binarySearch方法搜索该值的下标

int find;

int b[]={1,5,3,8,4};

find=Arrays.binarySearch(b , 8);

System.out.println(find);

输出:3

4.打印数组array的数值

int c[]={1,5,3,8,4};

String aString =Arrays.toString(c);//String 前的a和括号中的a均表示数组名称

System.out.println(aString);//String 前的a表示数组名称

输出:[1, 5, 3, 8, 4]

5.查看数组中是否包含特定的值,使用java.util.Arrays的array的转化为List的方法,然后使用list中的contains方法

int a[]={1,5,3,8,4}; boolean b=Arrays.asList(a).contains(1); System.out.println(b);//注意:b的值只可能是true或false

输出:true

(2)方法的通用写法示范

说明:以下的代码均为摘抄的java.util.Arrays类中的源码,注释为本人所加。

sort

//对数组a进行排序

public static void sort(long[] a) {

sort1(a, 0, a.length);

}

//对数组a中的从fromIndex(包含)至toIndex(不包含)的值进行排序

public static void sort(long[] a, int fromIndex, int toIndex) {

rangeCheck(a.length, fromIndex, toIndex);

sort1(a, fromIndex, toIndex-fromIndex);

}

/**

对基本类型数组的排序有以上两种方法,这里只摘出了long类型的。sort1方法篇幅原因没有摘出来,在sort1方法中使用的是经过调优的快速排序算法(tuned quicksort)。

**/

……….

……….

……….

//对对象类型进行排序

public static void sort(Object[] a) {

Object[] aux = (Object[])a.clone();

mergeSort(aux, a, 0, a.length, 0);

}

//对对象a中的从fromIndex(包含)至toIndex(不包含)的值进行排序

public static void sort(Object[] a, int fromIndex, int toIndex) {

rangeCheck(a.length, fromIndex, toIndex);

Object[] aux = copyOfRange(a, fromIndex, toIndex);

mergeSort(aux, a, fromIndex, toIndex, -fromIndex);

}

/**

对对象类型数组的排序有以上两种方法,在mergeSort方法中使用的是经过修改的归并排序算法(modified mergesort)。

**/

wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==



版权声明:本文为weixin_32011209原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。