BigInteger/BigDeciaml/Calendar/Data/System常用类

来源:互联网 发布:c语言输出1到100的素数 编辑:程序博客网 时间:2024/05/16 14:57

一:BigInteger

1.作用
用来操作超过Intgeter类型的数据
2.常用构造方法
BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
3.常用方法

       BigInteger b1=new BigInteger("100");        BigInteger b2=new BigInteger("100");            //public BigInteger add(BigInteger val)            //对数据进行加法操作            b1.add(b2);            //public BigInteger subtract(BigInteger val)            //对数据进行减法操作            b1.substract(b2);            //public BigInteger multiply(BigInteger val)            //对数据进行乘法操作            b1.multiply(b2);            //public BigInteger divide(BigInteger val)            //对数据进行除法操作            b1.divide(b2);            //public BigInteger[] divideAndRemainder(BigInteger val)                //返回一个BigInteger数组,数组中的元素:商,余数            b1.divideAndRemainder(b2);            //返回BigInteger[1]=商;                  BigInteger[2]=余数;

二:BigDeciaml

对于浮点类型,计算过程中存在精度损失,使用BigDecimal进行包装后可以解决精度损失的问题
1.构造方法
public BigDecimal(String value)
2.常用方法
使用方法参照BigInteger
常用的成员方法;
public BigDecimal add(BigDecimal augend):加
public BigDecimal subtract(BigDecimal subtrahend):减
public BigDecimal multiply(BigDecimal multiplicand):乘法
public BigDecimal divide(BigDecimal divisor):除
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
参数1:商, 参数2:保留几位小数,参数3:舍入的一种模式:ROUND_HALF_UP

三:Calendar

该类是一个抽象类,不能实例化,
1.创建对象

//public static Calendar getInstance()Calendar c=getInstance();//public int get(int field)返回给定日历字段的值

2.常用方法

public abstract void add(int field,int amount)                //为给定的日历的字段添加或者减去时间偏移量 使用: //需求:5年后的十天前        c.add(Calendar.YEAR, 5) ;        c.add(Calendar.DATE, -10) ; public final void set(int year,int month,int date)                //  设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值 使用:         c.set(2018,5,20) ;

四:Data

1.构造方法

Date() //分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。Date(long date) //分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

2.常用方法
1.常用成员方法

 void setTime(long time)          // 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。                                           long getTime()          // 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

2.(1).日期的格式化
日期对象——>>”文本格式”

public static void format(Date date);

(2).日期的解析
文本格式—–>>日期对象

public Dtae parse(String source)该方法本身会抛出异常parseException;//要使用它必须使用中间桥梁,DateForamt该类是一个抽象类//simpleDateFormat是该类的子类,可以对日期进行解析.构造方法SimpleDateFormat(String pattern)           用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。Ⅱ.格式年----------"yyyy"--------"MM"天(月中的)---------"dd";天(年中的)--------"DD"小时--------"HH"分钟---------"mm"---------"ss".使用SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;        //格式化        //public final String format(Date date)        String dateStr = sdf.format(d) ;

五:System

1.常用的两个字段
System.in 输入流
System.out 输出流
2.常用方法:

public static void gc();//运行垃圾回收器,最终调用的是重写之后的finalize();System.gc();public static void exit(int status)//终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。System.exit(0);public static long currentTimeMillis()://返回当前的时间毫秒值System.currenTimeMillis();

六:高级数组排序

1.冒泡(默认从小到大)
两两进行比较,大的往后放

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;     }   }}

2.选择(默认从小到大)
数组的0索引依次和后面的进行比较,大的往后放

for(int i=0;i<arr.length-1;i++){   for(int j=i+1;j<arr.lengt;j++){     if(arr[i]<arr[j]){     int temp=arr[j];     arr[j]=arr[i];     arr[i]=temp;     }   }}

3.二分查找
1.条件
必须是排好序的数组
2.思路
(1)定义最小(minindex)最大(maxindex)索引
(2)计算出中间索引(midindex)
(3)用中间索引的数值和要查找的进行比较
大了: maxindex=midindex-1
小了:minindex=midindex+1
(4)继续重复(2)(3)
判断(minindex>maxindex)表示没有该元素返回-1

public static int binarySearch1(int[] arr,int start,int end,int value){         int mid=(start+end)/2;        if(start>end){        return -1;}        if(value==arr[mid])        return mid;       if(arr[mid]>value)       {return binarySearch1(arr,start,mid-1,value);}       return binarySearch1(arr,mid+1,end,value);}
阅读全文
0 0
原创粉丝点击