【精选】java.util.arrays类详解(源码总结).doc

【精选】java.util.arrays类详解(源码总结)

? java.util.Arrays类详解(源码总结) 概述 binarySearch(二分法查找数组中的元素) equals(比较两个数组是否相等) fill(对数组中的指定位置填充相同的内容) copyOf(数组拷贝) asList(将数组转换为一个固定的List对象) hashCode(计算数组的哈希值) toString(以特定格式输出数组) 举例说明 说明:以下的代码均为摘抄的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)。 **/ binarySearch public static int binarySearch(long[] a, long key) { return binarySearch0(a, 0, a.length, key); } public static int binarySearch(long[] a, int fromIndex, int toIndex, long key) { rangeCheck(a.length, fromIndex, toIndex); return binarySearch0(a, fromIndex, toIndex, key); }/** 对数组中元素的查找有以上两种方法,在binarySearch0方法中使用的是二分查找法。并且对基本类型和对象类型的数组查找是同样的操作。 **/ equals //比较基本类型数组是否相等 public static boolean equals(long[] a, long[] a2) { if (a==a2) return true; if (a==null || a2==null) return false; int length = a.length; if (a2.length != length) return false; for (int i=0; ilength; i++) if (a[i] != a2[i]) return false;/** 对于double类型,使用的是: if (Double.doubleToLongBits(a[i])!

文档评论(0)

1亿VIP精品文档

相关文档