Math类的常见方法和案例以及Arrays类的常见方法

189 阅读5分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情

Math类

介绍

Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

方法摘要

static doubleabs(double a)           返回 double 值的绝对值。
static floatabs(float a)           返回 float 值的绝对值。
static intabs(int a)           返回 int 值的绝对值。
static longabs(long a)           返回 long 值的绝对值。
static doubleacos(double a)           返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。
static doubleasin(double a)           返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。
static doubleatan(double a)           返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。
static doubleatan2(double y, double x)           将矩形坐标 (xy) 转换成极坐标 (r, theta),返回所得角 theta
static doublecbrt(double a)           返回 double 值的立方根。
static doubleceil(double a)           返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
static doublecopySign(double magnitude, double sign)           返回带有第二个浮点参数符号的第一个浮点参数。
static floatcopySign(float magnitude, float sign)           返回带有第二个浮点参数符号的第一个浮点参数。
static doublecos(double a)           返回角的三角余弦。
static doublecosh(double x)           返回 double 值的双曲线余弦。
static doubleexp(double a)           返回欧拉数 edouble 次幂的值。
static doubleexpm1(double x)           返回 ex -1。
static doublefloor(double a)           返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
static intgetExponent(double d)           返回 double 表示形式中使用的无偏指数。
static intgetExponent(float f)           返回 float 表示形式中使用的无偏指数。
static doublehypot(double x, double y)           返回 sqrt(x2 +y2),没有中间溢出或下溢。
static doubleIEEEremainder(double f1, double f2)           按照 IEEE 754 标准的规定,对两个参数进行余数运算。
static doublelog(double a)           返回 double 值的自然对数(底数是 e)。
static doublelog10(double a)           返回 double 值的底数为 10 的对数。
static doublelog1p(double x)           返回参数与 1 之和的自然对数。
static doublemax(double a, double b)           返回两个 double 值中较大的一个。
static floatmax(float a, float b)           返回两个 float 值中较大的一个。
static intmax(int a, int b)           返回两个 int 值中较大的一个。
static longmax(long a, long b)           返回两个 long 值中较大的一个。
static doublemin(double a, double b)           返回两个 double 值中较小的一个。
static floatmin(float a, float b)           返回两个 float 值中较小的一个。
static intmin(int a, int b)           返回两个 int 值中较小的一个。
static longmin(long a, long b)           返回两个 long 值中较小的一个。
static doublenextAfter(double start, double direction)           返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。
static floatnextAfter(float start, double direction)           返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。
static doublenextUp(double d)           返回 d 和正无穷大之间与 d 相邻的浮点值。
static floatnextUp(float f)           返回 f 和正无穷大之间与 f 相邻的浮点值。
static doublepow(double a, double b)           返回第一个参数的第二个参数次幂的值。
static doublerandom()           返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
static doublerint(double a)           返回最接近参数并等于某一整数的 double 值。
static longround(double a)           返回最接近参数的 long
static intround(float a)           返回最接近参数的 int
static doublescalb(double d, int scaleFactor)           返回 d × 2scaleFactor,其舍入方式如同将一个正确舍入的浮点值乘以 double 值集合中的一个值。
static floatscalb(float f, int scaleFactor)           返回 f × 2scaleFactor,其舍入方式如同将一个正确舍入的浮点值乘以 float 值集合中的一个值。
static doublesignum(double d)           返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。
static floatsignum(float f)           返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。
static doublesin(double a)           返回角的三角正弦。
static doublesinh(double x)           返回 double 值的双曲线正弦。
static doublesqrt(double a)           返回正确舍入的 double 值的正平方根。
static doubletan(double a)           返回角的三角正切。
static doubletanh(double x)           返回 double 值的双曲线余弦。
static doubletoDegrees(double angrad)           将用弧度表示的角转换为近似相等的用角度表示的角。
static doubletoRadians(double angdeg)           将用角度表示的角转换为近似相等的用弧度表示的角。
static doubleulp(double d)           返回参数的 ulp 大小。
static floatulp(float f)           返回参数的 ulp 大小。

Math类常见方法应用案例

public class MathMethod {
    public static void main(String[] args) {
        //看看 Math 常用的方法(静态方法)
        
        //1.abs 绝对值
        int abs = Math.abs(-9);
        System.out.println(abs);//9
        
        //2.pow 求幂
        double pow = Math.pow(2, 4);//2 的 4 次方
        System.out.println(pow);//16
        
        //3.ceil 向上取整,返回>=该参数的最小整数(转成 double);
        double ceil = Math.ceil(3.9);
        System.out.println(ceil);//4.0
        
        //4.floor 向下取整,返回<=该参数的最大整数(转成 double)
        double floor = Math.floor(4.001);
        System.out.println(floor);//4.0
        
        //5.round 四舍五入 Math.floor(该参数+0.5)
        long round = Math.round(5.51);
        System.out.println(round);//6
        
        //6.sqrt 求开方
        double sqrt = Math.sqrt(9.0);
        System.out.println(sqrt);//3.0
        
        //7.random 求随机数
        // random 返回的是 0 <= x < 1 之间的一个随机小数
        // 思考:请写出获取 a-b 之间的一个随机整数,a,b 均为整数 ,比如 a = 2, b=7
        // 即返回一个数 x 2 <= x <= 7
        //  Math.random() * (b-a) 返回的就是 0 <= 数 <= b-a
        // (1) (int)(a) <= x <= (int)(a + Math.random() * (b-a +1) )
        // (2) 使用具体的数介绍 a = 2 b = 7
        // (int)(a + Math.random() * (b-a +1) ) = (int)( 2 + Math.random()*6)
        // Math.random()*6 返回的是 0 <= x < 6 小数
        // 2 + Math.random()*6 返回的就是 2<= x < 8 小数
        // (int)(2 + Math.random()*6) = 2 <= x <= 7
        // (3) 公式就是 (int)(a + Math.random() * (b-a +1) )
        for(int i = 0; i < 100; i++) {
            System.out.println((int)(2 + Math.random() * (7 - 2 + 1)));
        }
        //max , min 返回最大值和最小值
        int min = Math.min(1, 9);
        int max = Math.max(45, 90);
        System.out.println("min=" + min);
        System.out.println("max=" + max);
    }
}

Arrays类常见方法

Arrays里面包含了一系列静态方法,用于管理或操作数组(比如排序和搜索)

(1)toString返回数组的字符串形式

Arrays.toString(arr);

(2)sort排序(自然排序和定制排序)

Integer arr[] = {1, -1, 5, 0, 100}

(3)binarySearch通过二分搜索法进行查找,要求必须排好序

int index = Arrays.binarySearch(arr,3);

(4)copyOf数组元素的复制

Integer[] newArr = Arrays.copyOf(arr,arr.length);

(5)fill数组元素的填充

Integer[] num = new Integer[](3, 2, 1);

Arrays.fill(num,99);

(6)equals比较两个数组元素内容是否完全一致

bollean equals = Arrays.equals(arr,arr2);

(7)asList将一组值转换成list

List<Integer> asList = Arrays.asList(2, 3, 4, 5, 6, 1);
System.out.println("asList=" + asList);