Java

其他常用类

2022-02-27  本文已影响0人  马佳乐

Math类

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

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

(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  
上一篇下一篇

猜你喜欢

热点阅读