1.常用数学方法:
Math.abs( int a ). | 获取绝对值 |
Math.ceil( double a ). | 向上取整 |
Math.floor( double a ). | 向下取整 |
Math.round( double a ). | 向下取整 |
Math.max( double a ,double b ). | 求两个数的最大值 |
Math.min( double a ,double b ). | 求两个数的最小值 |
Math.pow( double a ,double b ). | 获取a的b次幂 |
Math.sqrt( double a ). | 开平方根 |
Math.cbrt(double a ). 开立方根
Math.random( ). 获取随机数
Math.absExact ( int a ). 获取绝对值
注意:
1. Math.random( ), 返回ouble类型的随机数,且范围是 [0.0,1.0).
2. Math.abs( int a ). (int的范围: -2147483648 ~ 2147483647 ;如果输入-2147483648,由于对应的正数不在int范围内,所以不能成功获得绝对值并且不会报错,此时可用 Math.absExact ( int a ),此方法会报错以免后续自己寻找错误浪费时间.
2.
System:
3.
.Object和Objects:
4.
BigDecimal:
解决精度的手段:
注意:
- 直接调用方法,不用在new对象
- c1和rs结果一样,但是类型不一样
c1是一个对象值,而rs为double类型值
5.
BigInteger:
6.Arrays:
(1).例子:
int[] arr = {12, 5, 52, 23, 14, 23}; //定义一个数组
Arrays.sort(arr); //排序(升序)
System.out.println(Arrays.toString(arr)); //获取数组(字符串类型)
例子:(降序获取数组)
import java.util.Arrays;
import java.util.Comparator;
Integer[] arr1 = {12, 5, 52, 23, 14, 23};
Arrays.sort(arr1, new Comparator<Integer>() {
//参数一:被排序的数组, 必须是引用数据类型
//参数二:匿名内部类,代表一个比较器对象
@Override
public int compare(Integer o1, Integer o2) {
//o1>
//o1 o2数组里边的数
//1.降序:
// if(o1<o2){
// return 1;
// }else if(o1>o2){
// return -1;
// }
// return 0;
// 默认升序 return o1-o2;
return -(o1 - o2);//o2-o1
}
});
System.out.println(Arrays.toString(arr1));
7.二分法:
步骤:
例子:
//二分查找:
public class TwoSearch {
public static void main(String[] args) {
int[] arr = {10, 14, 16, 18, 20, 24, 65, 85, 90};
// 0 1 2 3 4 5 6 7 8
System.out.println(binarySerch(arr, 100));//-1
System.out.println(binarySerch(arr, 85));//7
}
//二分查找
public static int binarySerch(int[] arr, int data) {
//最左边位置
int left = 0;
//最右边位置
int right = arr.length - 1;
//二分法循环次数
while (left <= right) {
//获得中间索引
int midindex = (left + right) / 2;
if (data > arr[midindex]) {
left = midindex + 1;
} else if (data < arr[midindex]) {
right = midindex - 1;
} else {
return midindex;
}
}
return -1;
}
}