其他常用类
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 <T> List<T> | asList(T... a)返回一个受指定数组支持的固定大小的列表。 |
static int | binarySearch(byte[] a, byte key)使用二分搜索法来搜索指定的 byte 型数组,以获得指定的值。 |
static int | binarySearch(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 boolean | equals(int[] a, int[] a2) 如果两个指定的 int 型数组彼此相等,则返回 true。 |
static void | fill(Object[] a, int fromIndex, int toIndex, Object val)将指定的 Object 引用分配给指定 Object 数组指定范围中的每个元素。 |
static void | sort(short[] a) 对指定的 short 型数组按数字升序进行排序。 |
static void | sort(short[] a, int fromIndex, int toIndex)对指定 short 型数组的指定范围按数字升序进行排序。 |
static <T> void | sort(T[] a, Comparator<? super T> c)根据指定比较器产生的顺序对指定对象数组进行排序。 |
static String | toString(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