常用API&类型装换&算法->二分查找&冒泡排序

API

Math
  • ceil: 向上取整
  • floor: 向下取整
  • random: 生成[0,1)之间的double类型的随机数
  • abs: 绝对值
System
  • exit(int): 0表示正常退出,非0表示异常退出
  • currentTimeMillis(): 当前时间毫秒值 距格林尼治时间 1997-1-1-00:00:00:000
  • nanoTime(): 当前时间的纳秒值
  • arraycopy(目标数组, 从索引开始拷贝,目的地数组,从目的地的索引位置开始拷贝,拷贝长度): 进行数组拷贝
Object&Objects

常用方法:

  • toString() - 重写toString方法,可直接打印对象内容,方便查看
  • equals() - 重写equals方法,可直接比较两个对象的内容
BigDecimal

概述:定点小数,把小数后所有的位数都记录,精度高,占用空间大

常用方法:

  • add: 加法
  • subtract: 减法
  • multiple: 乘法
  • divide: 除法 (除数,小数精度,舍入模式):
    • BigDecimal.ROUND_UP: 进一法
    • BigDecimal.ROUND_FLOOR: 去尾法
    • BigDecimal.ROUND_HALF_UP: 四舍五入
Integer

包装类-引用类型

//基本类型相对应的引用类型
byte	Byte
short 	Short
char	Character
int		Integer
long	Long
float	Float
double	Double
boolean	Boolean

自动拆箱,自动装箱

//拆箱	包装类转为基本类型
Integer x = Integer.ValueOf("200");
int y = x; //替换为 int y = x.intValue();
//装箱	基本类型转换为包装类型
int x = 100;
Integer y = x;//替换为 Integer y = Integer.ValueOf(x);

类型转换:

  • String.valueOf(数字)

  • int x = Integer.parselnt(“字符串”)

    Integer优化
    public static void main(String[] args){
        // -128 ~ 127之间,使用一个Integer对象表示此int数字
        Integer x = 127;// Integer.valueOf(100) new Integer(100)
        Integer y = 127;//Integer.valueOf(100)
        
        System.out.println(x == y);//true
        
        //超出了以上区间,每次会创建新的Integer对象
        Integer a = 128;//Integer.valueOf(300) new Integer(300)
        Integer b = 128;//Integer.valueOf(300) new Integer(300)
        System.out.println(a == b);//false
    }
    

算法

二分查找

二分查找又叫对半查找,但必须是按照从小到大排好序的数组才可以进行二分查找

public static int binarySearch(int[] arr,int number){
  //定义最大和最小索引变量
    int min = 0;
    int max = arr.length - 1;
    int mid;
    //进行条件判断
    while(min <= max){
        //定义给中间索引赋值		>> 偏移运算符
        mid = (min + max) >> 1;
        //如果中间索引值对应的元素小于要查找的元素往右开始查找
        if(arr[mid] < number){
            min = arr[mid + 1];
        //如果中间索引值对应的元素大于要查找的元素往左开始查找
        } else if(arr[mid] > number){
            max = arr[mid - 1];
        //如果找到了就返回该索引
        }else{
            return mid;
        }
    }
    //如果没有找到返回-1
    return -1;
}
冒泡排序

相邻两个数字进行比较把较大的字放在后面以此类推,知道数组中数据全部重新排列

public static void bubbleSort(int[] arr){
    //外循环控制比较轮数
    for(int i = 0; i < arr.length - 1; i++){
        //内部循环控制每轮比较的次数
    	for(int j = 0; j < arr.length - 1 - i; j++){
             //如果前面一个数大于后面一个数则进行交换
   		 if(arr[j] > arr[j + 1]){
       		int temp = arr[j];
       		arr[j] = arr[j + 1];
   			arr[j + 1] = temp;
    		}
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值