其他常用类

182 阅读6分钟

Math类

(1)abs( )、max( )和min( )方法

常见的abs()方法、max()方法和min()方法,参数可以是int、float、long、double数据类型。如果参数的数据类型用YYY表示,则格式和功能如下:

  • public static YYY abs(YYY a):返回参数a的绝对值。
  • public static YYY max(YYY a,YYY b):返回参数a、b中较大的值。
  • public static YYY min(YYY a,YYY b):返回参数a、b中较小的值。

(2)random( )方法

格式:public static double random()random()
功能:求随机数。它返回一个带正号的double值,该值大于等于0.0且小于1.0。返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
(int)(Math.random()*n)返回大于等于0小于n的随机整数 m+(int)(Math.random()*n)返回大于等于m小于m+n(不包括m+n)的随机整数

(3)round( )方法

public static long round(double a):返回一个最接近参数a的长整型数据。
public static int round(float a):返回一个最接近参数a的整型数据。

(4)sqrt( )方法

格式:public static double sqrt(double a)
功能:求出参数的正平方根

Math类常用方法的使用:

public class Test {
	public static void main(String[] args) {
		double a=Math.random()*100;
		double b=Math.random()*100;
		System.out.println(a);
		System.out.println(b);
		System.out.println(Math.min(a,b));
		System.out.println(Math.round(Math.max(a,b)));	
		System.out.println(Math.sqrt(15.0));
	}
}

本程序的运行结果是:

87.40362156847881
5.762697853964327
5.762697853964327
87
3.872983346207417

Random类

Random类包含在java.util包中

方法说明
Random(long seed)产生一个以 seed 为基值的随机数,基值缺省时,以系统时间为seed
int nextInt()    产生一个整型随机数
long nextLong()产生一个 long 型随机数
float nextFloat()    产生一个 float 型0.0和1.0间随机数
double nextDouble()    产生一个double 型0.0和1.0间随机数

Random类常用方法的使用:

import java.lang.*;
import java.util.Random; 
public class RandomApp{ 
      public static void main(String args[]){ 
              Random ran1=new Random(); 
              Random ran2=new Random(123); 
              System.out.println("第一组随机数:"); 
              System.out.println("\t 整型:"+ran1.nextInt()); 
              System.out.println("\t 长整型:"+ran1.nextLong()); 
              System.out.println("\t 浮点型:"+ran1.nextFloat()); 
              System.out.println("\t 双精度型:"+ran1.nextDouble()); 
              System.out.print("第二组随机数:"); 
              System.out.println(); 
              for(int i=0;i<4;i++){ 
	System.out.println("\t 第"+i+"个随机数:"+ran2.nextInt()+" "); } } 
}

本程序的运行结果是:

第一组随机数:
    整型:1492021166
    长整型:-8473108743275232078
    浮点型:0.995001
    双精度型:0.13276665574576307
第二组随机数:
    第0个随机数:-1188957731
    第1个随机数:1018954901
    第2个随机薇:-39088943
    第3个随机数:1295249578

Date类

java.util.Date: utility(java工具包)
Date类用于描述某个具体的时刻,精确到毫秒。

构造方法

使用Date类中包含的无参构造方法Date(),创建对象,例如:Date date=new Date();
使用Date 的有参构造方法Date(long time)来创建一个表示时间的Date对象,参数time为所要创建的时间距1970年1月1日0时0分0秒的时间间隔(单位为毫秒)。

常用方法

getTime():返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
setTime(long time):设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
compareTo(Date d):当前对象与参数对象比较大小,当前对象大,返回整数,当前对象小,返回负数,相同,返回0.(现在时间比过去时间大)。
after(Date when):测试此日期是否在指定日期之后。
before(Date when) :测试此日期是否在指定日期之前。
equals(Object obj) :比较两个日期的相等性。

SimpleDateFormat类

java.text.SimpleDateFormat
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat 类的一个常用构造方法:
public SimpleDateFormat(String pattern)
该构造方法可以用参数pattern指定的格式创建一个对象,该对象调用format(Data date)方法格式化时间对象date。
创建对象格式:
SimpleDateFormat f=new SimpleDateFormat(格式)
y或yy 表示用2位数字输出年份 ,yyyy表示用4为数字输出年份。
M 或MM 表示用2位数字或文本输出月份,如果想用汉字输出月 份,pattern 中应连续包含至少3个M,如:MMM。 d 或dd 表示用2位数字输出日。
H或HH 表示用2位数字输出小时。
m或mm 表示用2位数字输出分。
s或ss 表示用2位数字输出秒。
E 表示输出星期。

public StringBuffer format(
		Date date, 
		StringBuffer 	toAppendTo,
		FieldPosition pos)

将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。
public Date parse(String text, ParsePosition pos):解析字符串的文本,生成 Date。
SimpleDateFormat类常用方法:

import java.util.Date;
import java.text.SimpleDateFormat;
public class Ex {
    public static void main(String args[]) throws Exception{
    	Date nowTime=new Date();
    	System.out.println(nowTime);
       	SimpleDateFormat sdf;
      	 //MM表示月份,mm表示分钟
       	sdf=new SimpleDateFormat(“北京时间: yyyy 年 MM 月 dd 日");  
	System.out.println(sdf.format(nowTime));
	System.out.println("*************");
	SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd");
	Date date2=sdf2.parse("1999-9-30");
	System.out.println(sdf.format(date2));
    }
}

本程序的运行结果是:

Thu Apr 18 14:20:04 CST 2019
北京时间: 2019 年 04 月 18 日
*************
北京时间: 1999 年 09 月 30 日

Calendar类

java.util.Calendar
抽象类,不可创建对象,内部封装毫秒值,表示一个时间点,提供一组时间运算方法。

方法说明
static  Calendar getInstance()返回默认地区和时间的Calendar对象
Date getTime()返回与调用对象具有相同时间的Date对象
void setTime(Date)基于参数Date对象设置当前对象
int get(int calFields)返回调用对象calFields指定部分的值。如年、月、日等
void add(int originalvalue,int value)将originalvalue 指定的时间或日期增加一个value值
void set(int calFields,int val)将val中指定的值设置为调用对象calFields所指定的时间或日期的值
void clear()清除当前Calendar对象中的时间组成部分
boolen equals(Object c)如果当前日历对象表示的Calendar实例与对象c相同,返回true

Arrays工具类

Java提供了一个操作数组的工具类:java.util.Arrays,该工具类里提供了大量静态方法对数组进行排序、查询等操作。

使用说明
static ListasList(T... a)返回一个受指定数组支持的固定大小的列表。
static intbinarySearch(byte[] a, byte key)使用二分搜索法来搜索指定的 byte 型数组,以获得指定的值。  
static intbinarySearch(byte[] a, int fromIndex, int toIndex, byte key)使用二分搜索法来搜索指定的 byte 型数组的范围,以获得指定的值。
static boolean[]copyOf(boolean[] original, int newLength)复制指定的数组,截取或用 false 填充(如有必要),以使副本具有指定的长度。
static double[]copyOfRange(double[] original, int from, int to)将指定数组的指定范围复制到一个新数组。
static booleanequals(int[] a, int[] a2)   如果两个指定的 int 型数组彼此相等,则返回 true。
static voidfill(Object[] a, int fromIndex, int toIndex, Object val)将指定的 Object 引用分配给指定 Object 数组指定范围中的每个元素。
static voidsort(short[] a)    对指定的 short 型数组按数字升序进行排序。
static voidsort(short[] a, int fromIndex, int toIndex)对指定 short 型数组的指定范围按数字升序进行排序。
static voidsort(T[] a, Comparator<? super T> c)根据指定比较器产生的顺序对指定对象数组进行排序。
static StringtoString(long[] a)   返回指定数组内容的字符串表示形式。

copyOf()方法:
copyOf(arr,int newlength)
arr:要进行复制的数组
newlength:int型常量,指复制后的新数组的长度,如果新数组的长度大于arr的长度,则根据赋值数组的类型决定填充的值;如果复制后的数组长度小于数组arr的长度,则会从arr的第一元素开始截取值满足新数组长度为止。 copyOfRange()方法:
copyOfRange(arr,int fromIndex,int toIndex)
arr:要进行复制的数组
fromIndex:指定要复制范围的起始下标,必须在0至整个数组的长度之间。
toIndex:要复制范围的结束下标,新数组不包括toIndex所指元素。
sort()方法:sort(arr)
arr:要进行排序的数组名称
排序后,数组中的所有元素升序排列。
Arrays类常用方法的使用:

import java.util.Arrays;
public class Ex {
    public static void main(String args[]) {
    	int[] arr1={3,5,7,9,10};
	int[] arr2=Arrays.copyOf(arr1,7);
	System.out.println("数组arr2的元素:");
	for(int i:arr2){	System.out.print(i+"  ");		}
	System.out.println();
	int[] arr3={3,5,7,9,10,6,12,25,32,75};
	int[] arr4=Arrays.copyOfRange(arr3,2,5);
	System.out.println("数组arr4的元素:");
	for(int i:arr4){	System.out.print(i+"  ");		}
	System.out.println();
	int[] arr5={3,10,7,9,5,6,};
	Arrays.sort(arr5);
	System.out.println("数组arr5的元素:");
	for(int i:arr5){	System.out.print(i+"  ");		}    }
}

本程序的运行结果是:

数组arr2的元素:
3  5  7  9  10  0  0  
数组arr4的元素:
7  9  10  
数组arr5的元素:
3  5  6  7  9  10