Math:包含于执行基本数学运算的方法,如:指数,对数,平方根,三角函数
常用方法(都为是static方法)

其中随机数(公式):

Arrays:包含一系列静态方法,用于管理或操作数组(如:排序和查找)
常用的方法

sort:

1.可以直接使用冒泡排序 , 也可以直接使用 Arrays 提供的 sort 方法排序
2. 因为数组是引用类型,所以通过 sort 排序后,会直接影响到 实参 arr
3. sort 重载的,也可以通过传入一个接口 Comparator 实现定制排序
4. 调用 定制排序 时,传入两个参数
(1) 排序的数组 arr
(2) 实现了 Comparator 接口的匿名内部类 , 要求实现 compare 方法
源码分析
(1) Arrays.sort(arr, new Comparator())
(2) 最终到 TimSort 类的 private static <T> void binarySort(T[] a, int lo, int hi, int start,
Comparator<? super T> c)()
(3) 执行到 binarySort 方法的代码, 会根据动态绑定机制 c.compare()执行我们传入的
匿名内部类的 compare ()
while (left < right) {
int mid = (left + right) >>> 1;
if (c.compare(pivot, a[mid]) < 0)
right = mid; else
else
left = mid + 1;
}
(4) new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Integer i1 = (Integer) o1;
Integer i2 = (Integer) o2;
return i2 - i1;
}
}
(5) public int compare(Object o1, Object o2) 返回的值>0 还是 <0
binarySearch():
要求该数组是有序的. 如果该数组是无序的,不能使用 binarySearch,如果数组中不存在该元素,就返回 return -(low + 1);low是指查找的数本来排序的位置
copyOf():
1. 从 arr 数组中,拷贝 arr.length 个元素到 newArr 数组中
2. 如果拷贝的长度 > arr.length 就在新数组的后面 增加 null
3. 如果拷贝长度 < 0 就抛出异常 NegativeArraySizeException
4. 该方法的底层使用的是 System.arraycopy()
fill:可以理解成是替换原来的元素
asList():
1. asList 方法,会将 (2,3,4,5,6,1)数据转成一个 List 集合
2. 返回的 asList 编译类型 List(接口)
3. asList 运行类型 java.util.Arrays#ArrayList, 是 Arrays 类的静态内部类
private static class ArrayList<E> extends AbstractList<E>
implements RandomAccess, java.io.Serializable

197

被折叠的 条评论
为什么被折叠?



