Java(Math类,Arrays类)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值