返回列表 回复 发帖

java.util类详解

介绍Java的实用工具类库java.util包。在这个包中,Java提供了一些实用的方法和数据结构。例如,Java提供日期(Data)类、日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack)、向量(Vector) 、位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构。
. J& X7 o" H9 @1 N; Z; ]: Pwww.huuoo.com
2 {3 `' b; G1 d& o% H# n忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。图1.1给出了java.util包的基本层次结构图。下面我们将具体介绍其中几个重要的类。
' R; _9 z  I& V; P0 d- awww.huuoo.com2 t3 e6 u" r0 C0 U, B0 D
           ┌java.util.BitSet忽悠社区0 H, D, ~8 v# k# ?
           │java.util.Calendar
7 O# r8 r( x1 l5 S$ d: C9 Vwww.huuoo.com           │      └java.util.GregorianCalendarwww.huuoo.com6 i* _) z% p: t$ a2 W
           │java.util.Date, e' o6 s, }6 Q+ H" a
           │java.util.Dictionary
" N3 o3 N9 m7 D) z2 H           │      └java.util.Hashtable
, e+ t4 \' ]5 ~0 C) o忽悠,忽悠社区,忽悠论坛.           │             └java.util.Properties
1 G1 o5 r# h7 h; i5 A, ~           │java.util.EventObject
0 u, I# S8 x# Z; c& D, W' ?, i忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。           │java.util.ResourceBundle忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。/ q3 W: A$ P8 \* P- ?% U
       ┌普通类┤      ├java.util.ListResourceBundle
9 R+ q5 g* d, v* `4 S8 f$ uwww.huuoo.com       │   │      └java.util.PropertyResourceBundle- y; P- x. F& D. Q9 {3 x
       │   │java.util.Local忽悠,忽悠社区,忽悠论坛.9 M1 Z3 l" N+ `8 c3 L
       │   │java.util.Observable
3 C, x8 |; a- u6 J忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。       │   │java.util.Random
2 b1 p" r: T7 i! Y/ q忽悠,忽悠社区,忽悠论坛.       │   │java.util.StringTokenizer
. N9 h6 L# j* p( S* r; L       │   │java.util.Vector
% a' V3 c( g* t7 s6 d& v: L忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。       │   │      └java.util.Stack忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。4 k+ S; ^9 t4 o) {2 o# _
  Java.util┤        └java.util.TimeZone忽悠,忽悠社区,忽悠论坛., a2 Q  r, @# l3 D, a3 C
       │          └java.util.SimpleTimeZone忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。+ P8 D& o# V; n8 ?0 p6 f
       │   ┌java.util.Enumeration" ^+ `0 j, P; Z1 ?  t+ g! F
       ├接 口┤java.util.EventListener
1 x# }' ^; b7 a5 O1 e5 qwww.huuoo.com       │   └java.util.Observerwww.huuoo.com% K6 p8 t5 z. K, @5 @, F
       │   ┌java.util.EmptyStackException
8 U' {) E- c6 C6 A/ s4 O       └异常类┤java.util.MissingResourceException
' S! `! O; B% F1 G           │java.util.NoSuchElementExceptionwww.huuoo.com+ b* L. l2 j! Q0 ]2 X
           └java.util.TooManyListenersException忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。$ ]4 n1 J- H" o% j
忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。! v6 c6 D% A! D% p
                                             图1.1 java.util包的基本层次结构www.huuoo.com3 z: A$ M+ Z5 v, G6 D0 E, c* e
忽悠,忽悠社区,忽悠论坛." V/ b- M# L- M0 o- }7 t- e1 L
1.2 日期类Date忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。+ o$ k5 {9 V: \9 A6 y, X

* G0 s: Y0 B- ~( E' {忽悠,忽悠社区,忽悠论坛.  Java在日期类中封装了有关日期和时间的信息,用户可以通过调用相应的方法来获取系统时间或设置日期和时间。Date类中有很多方法在JDK1.0公布后已经过时了,在8.3中我们将介绍JDK1.0中新加的用于替代Date的功能的其它类。忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。+ H4 h( S) @- p- k1 \. T- Z" H
  在日期类中共定义了六种构造函数。# S1 r6 s) I& A) l/ o. Y
  (1) public Date()' b/ h# G6 @. _& f4 F' K' O5 w1 I
  创建的日期类对象的日期时间被设置成创建时刻相对应的日期时间。www.huuoo.com& u( i( e0 _/ p  i# [$ d
  例 Date today=new Date();//today被设置成创建时刻相对应的日期时间。www.huuoo.com3 Q. W5 |4 D1 e: Z

! K' Z% e' g# G6 ^www.huuoo.com  (2)public Date (long date)
; a" Z  |& p; q, F9 K5 g0 S) wwww.huuoo.com
  long 型的参数date可以通过调用Date类中的static方法parse(String s)来获得。
  1. long l=Date.parse("Mon 6 Jan 1997 13:3:00");
  2. Date day=new Date(l);
  3. //day中时间为1997年 1月6号星期一,13:3:00。
复制代码
(3)public Date(String s)
4 h) T- E/ s' Z2 d& ywww.huuoo.com
  按字符串s产生一日期对象。s的格式与方法parse中字符串参数的模式相同。
  1. Date day=new Date("Mon 6 Jan 1997 13:3:00");
  2. //day 中时间为1997年1月6号星期一,13:3:00.
复制代码
(4)public Date(int year,int month,int date)忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。6 o/ A9 P" R2 m' u5 I- ~
  (5)public Date(int year,int month,int date,int hrs,int min)忽悠,忽悠社区,忽悠论坛.4 f# c0 x) ?# W
  (6)public Date(int year,int month,int date,int hrs,int min,int sec)忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。! h6 g. m7 u9 T9 Q- v) K
  按给定的参数创建一日期对象。
1 S2 `$ g6 {0 I* Q忽悠,忽悠社区,忽悠论坛.  参数说明:忽悠社区; g1 P: t( `9 n
  year的值为:需设定的年份-1900。例如需设定的年份是1997则year的值应为97,即1997-1900的结果。所以Date中可设定的年份最小为1900;
8 T/ M/ W0 @/ R+ T1 d忽悠社区  month的值域为0~11,0代表1月,11表代表12月;忽悠社区6 }6 z  F+ ]) m& X$ p
  date的值域在1~31之间;
+ o  f5 p  A2 K  C. d8 i- \  hrs的值域在0~23之间。从午夜到次日凌晨1点间hrs=0,从中午到下午1点间hrs=12;忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。/ B& k) I* k: e/ O9 `8 H1 W* \4 I
  min和sec的值域在0~59之间。
  1. Date day=new Date(11,3,4);
  2. //day中的时间为:04-Apr-11 12:00:00 AM
复制代码
另外,还可以给出不正确的参数。
' t! o9 }/ Q9 M3 G% e# ^- p忽悠,忽悠社区,忽悠论坛.设定时间为1910年2月30日,它将被解释成3月2日。
  1. Date day=new Date(10,1,30,10,12,34);
  2. System.out.println("Day's date is:"+day);
  3. //打印结果为:Day's date is:Web Mar 02 10:13:34 GMT+08:00 1910
复制代码
下面我们给出一些Date类中常用方法。忽悠社区- H4 q, N4 G+ }9 O
  (1)public static long UTC(int year,int month,int date,int hrs. int min,int sec)
& ]3 N' f3 @0 ^$ k忽悠社区
  该方法将利用给定参数计算UTC值。UTC是一种计时体制,与GMT(格林威治时间)的计时体系略有差别。UTC计时体系是基于原子时钟的,而GTMT计时体系是基于天文学观测的。计算中使用的一般为GMT计时体系。忽悠社区3 k) `. V* G" R7 c
  (2)public static long parse(String s)忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。5 @3 l6 }" L, k8 K1 k6 Z
  该方法将字符串s转换成一个long型的日期。在介绍构造方法Date(long date)时曾使用过这个方法。
5 N4 j! R+ q; i忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。  字符串s有一定的格式,一般为:(星期 日 年 时间GMT+时区)www.huuoo.com* G* [/ Y; J" ]$ U, `5 a
  若不注明时区,则为本地时区。www.huuoo.com- K  T' h! t! {* J8 ]
  (3)public void setMonth(int month)' x: B. g- e) \1 }, j" l* m
  (4)public int getMonth()
$ }$ Q# @9 ?: b- G+ `忽悠,忽悠社区,忽悠论坛.
  这两个方法分别为设定和获取月份值。
' o! P9 S/ L' \8 ^% d( ?  获取的月份的值域为0~11,0代表1月,11代表12月。忽悠社区1 O$ p, t3 h. d" t' \$ `: f  ~
  (5)public String toString()
2 l& p5 O7 L. P! Z7 s) t* F
  (6)public String toLocalString()+ ~- O7 I* w$ l+ g
  (7)public String toGMTString()
  l! Q% R) o! \6 k  将给定日期对象转换成不同格式的字符串。它们对应的具体的格式可参看例子8.1。, t% l+ F: p2 H, m& \0 {
  (8)public int getTimezoneOffset()0 u/ V) C2 g2 A/ Z; `, t6 p
  该方法用于获取日期对象的时区偏移量。/ N) M+ H6 v: d
  例8.1中对上面介绍的Date类中的基本方法进行了具体的应用,并打印了相应的结果。由于使用了一些过时的方法,所以编译时会有警告信息。另外,由于本例中的时间表示与平台有关,不同的JDK版本对此处理不完全相同,因此不同版本的JDK执行本例的结果可能有细微差异。
  1. DateApp.java
  2.   import java.lang.System;
  3.   import java.util.Date;
  4.   public class DateApp{
  5.    public static void main(String args[]){
  6.     Date today=new Date();
  7.     //today中的日期被设成创建时刻的日期和时间,假设创建时刻为1997年3月
  8.     //23日17时51分54秒。
  9.     System.out.println("Today's date is "+today);
  10.     //返回一般的时间表示法,本例中结果为
  11.     //Today's date is Fri May 23 17:51:54 1997
  12.     System.out.println("Today's date(Internet GMT)is:"
  13.      +today.toGMTString());
  14.     //返回结果为GMT时间表示法,本例中结果为
  15.     //Today's date(Internet GMT)is: 23 May 1997 09:51:54:GMT
  16.     System.out.println("Today's date(Locale) is:"
  17.      +today.toLocaleString());
  18.     //返回结果为本地习惯的时间表示法,结果为
  19.     //Today's date(Locale)is:05/23/97 17:51:54
  20.     System.out.println("Today's year is: "+today.getYear());
  21.     System.out.println("Today's month is: "+(today.getMonth()+1));
  22.     System.out.println("Today's date is: "+today.getDate());
  23.     //调用Date类中方法,获取年月日的值。
  24.     //下面调用了不同的构造方法来创建Date类的对象。
  25.     Date day1=new Date(100,1,23,10,12,34);
  26.     System.out.println("Day1's date is: "+day1);
  27.     Date day2=new Date("Sat 12 Aug 1996 13:3:00");
  28.     System.out.println("Day2's date is: "+day2);
  29.     long l= Date.parse("Sat 5 Aug 1996 13:3:00 GMT+0800");
  30.     Date day3= new Date(l);
  31.     System.out.println("Day3's date(GMT)is: "+day3.toGMTString());
  32.     System.out.println("Day3's date(Locale)is: "
  33.      +day3.toLocaleString());
  34.     System.out.println("Day3's time zone offset is:"
  35.      +day3.getTimezoneOffset());
  36.    }
  37.   }
复制代码
运行结果6 Z1 X8 T, S+ x( G2 m; F
  Today's date is Thu Dec 27 17:58:16 CST 2001忽悠,忽悠社区,忽悠论坛.3 f; O9 b* P" q3 B2 j: x) l
  Today's date(Internet GMT)is:27 Dec 2001 09:58:16 GMT忽悠社区& @( i; F  j! |2 f/ t: G4 `7 Y
  Today's date(Locale) is:2001-12-27 17:58:16
+ q4 F/ E* b: J$ X- v8 z) {7 I忽悠,忽悠社区,忽悠论坛.  Today's year is: 101www.huuoo.com5 q, D- l6 d2 X1 l  s; R4 L  Q
  Today's month is: 12忽悠社区$ _# w0 M8 Y" h
  Today's date is: 27
. R. S3 [) q! m( p& q& M- @: q忽悠,忽悠社区,忽悠论坛.  Day1's date is: Wed Feb 23 10:12:34 CST 2000忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。' j3 D) b. J5 g0 A& G5 [8 Z+ N& f
  Day2's date is: Fri Aug 12 13:03:00 CST 1996忽悠社区8 N3 L) d! E9 N7 f
  Day3's date(GMT)is: 5 Aug 1996 05:03:00 GMTwww.huuoo.com' C( I- l$ g, U" x! v; m3 B
  Day3's date(Locale)is: 1996-8-5 13:03:00
  W& n! n% b2 z  V2 K5 P+ N  q  Day3's time zone offset is:-480
% d8 R8 e: z8 ]$ M2 c0 [忽悠,忽悠社区,忽悠论坛.忽悠社区" l% E' c" r5 }, P) l  |: L0 H
1.3 日历类Calendar! T* N: r' S1 |' y; k+ Z' a0 Y- `

+ t) q; C+ y% C  b3 Y  在早期的JDK版本中,日期(Date)类附有两大功能:(1)允许用年、月、日、时、分、秒来解释日期:(2)允许对表示日期的字符串进行格式化和句法分析。在JDK1.1中提供了类Calendar来完成第一种功能,类DateFormat来完成第二项功能。dateFormat是java.text包中的一个类。与Date类有所不同的是,DateFormat类接受用各种语言和不同习惯表示的日期字符串。本节将介绍java.util包中的类Calendar及其它新增加的相关的类。
) y* q; g( W8 h7 b+ U- E  类Calendar是一个抽象类,它完成日期(Date)类和普通日期表示法(即用一组整型域如YEAR,MONTH,DAY,HOUR表示日期)之间的转换。忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。2 c$ Z2 Y% n" F; j1 u) g
  由于所使用的规则不同,不同的日历系统对同一个日期的解释有所不同。在JDK1.1中提供了Calendar类一个子类GregorianCalendar??它实现了世界上普遍使用的公历系统。当然用户也可以通过继承Calendar类,并增加所需规则,以实现不同的日历系统。忽悠社区; z7 r4 f  U, X* b
  第GregorianCalendar继承了Calendar类。本节将在介绍类GregorianCalendar的同时顺带介绍Calendar类中的相关方法。
+ P- y- @% S) l" y7 K忽悠社区  类GregorianCalendar提供了七种构造函数:www.huuoo.com* u! g- o& i4 ?
  (1)public GregorianCalendar()忽悠,忽悠社区,忽悠论坛.$ W$ h; b" ~2 `: v1 G: T0 ]
  创建的对象中的相关值被设置成指定时区,缺省地点的当前时间,即程序运行时所处的时区、地点的当前时间。
; z' V% T, ?6 M2 i  (2)public GregorianCalendar(TimeZone zone)
( |3 s: h9 M; F( ~+ c0 `
  创建的对象中的相关值被设置成指定时区zone,缺省地点的当前时间。www.huuoo.com4 [7 p) K  C) m' m
  (3)public GregorianCalendar(Locale aLocale)
% v7 x" [/ l3 }& b3 s, \7 Kwww.huuoo.com
  创建的对象中的相关值被设置成缺省时区,指定地点aLocale的当前时间。
/ [' S* }+ t: C; n/ A忽悠社区  (4)public GregorianCalendar(TimeZone zone,Local aLocale)1 A$ C; B. V2 @* P. ^
  创建的对象中的相关值被设置成指定时区,指定地点的当前时间。
! c( `3 Z6 M" |% b; g+ i  上面使用到的类TimeZone的性质如下:忽悠,忽悠社区,忽悠论坛.7 z7 z* X. w# L: @) t0 t
  TimeZone是java.util包中的一个类,其中封装了有关时区的信息。每一个时区对应一组ID。类TimeZone提供了一些方法完成时区与对应ID两者之间的转换。  V  v4 o# R* m7 B2 t4 Q  H% g; @
  (Ⅰ)已知某个特定的ID,可以调用方法
  1. public static synchronized TimeZone getTimeZone(String ID)
复制代码
  
- c: O) y' E7 L3 [$ V* u忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。来获取对应的时区对象。
# J0 G6 b' M2 c! B8 R" n# W  例 太平洋时区的ID为PST,用下面的方法可获取对应于太平洋时区的时区对象:
  1. TimeZone tz=TimeZone.getTimeZone("PST");
复制代码
  
+ J8 }( J6 Z% V& \% W5 W1 V" U- c忽悠社区       调用方法getDefault()可以获取主机所处时区的对象。
  1. TimeZone tz=TimeZone.getDefault();
复制代码
(Ⅱ)调用以下方法可以获取时区的ID
' M6 [; A7 E! h2 x+ [www.huuoo.com  ■public static synchronized String[] getavailableIDs(int rawOffset)! _# D$ Q$ v$ L* h9 `9 Y
  根据给定时区偏移值获取ID数组。同一时区的不同地区的ID可能不同,这是由于不同地区对是否实施夏时制意见不统一而造成的。
1 g  H% z& ]( w/ T! lwww.huuoo.com  例
  1. String s[]=TimeZone.getAvailableIDs(-7*60*60*1000);
复制代码
  打印s,结果为s[0]=PNT,s[1]=MST忽悠,忽悠社区,忽悠论坛.) i: X# `' n. P- A3 e
  ■public static synchronized String[] getAvailableIDs()
8 [' R# L, s! x2 ~' W忽悠社区
  获取提供的所有支持的ID。
; k4 c3 M  d- e. X" y忽悠社区  ■public String getID()
$ c1 i! ]/ A0 r# W, Z忽悠,忽悠社区,忽悠论坛.
  获取特定时区对象的ID。
  1. TimeZone tz=TimeZone.getDefault();
  2. String s=tz.getID();
复制代码
  打印s,结果为s=CTT。
# h9 }3 ?: H8 w: }- e0 y  上面使用类的对象代表了一个特定的地理、政治或文化区域。Locale只是一种机制,它用来标识一类对象,Local本身并不包含此类对象。
! e; B4 P* C; O; z5 j: X' {  要获取一个Locale的对象有两种方法:
' v. H6 S, G. S% F7 f8 k" o忽悠,忽悠社区,忽悠论坛.  (Ⅰ)调用Locale类的构造方法忽悠,忽悠社区,忽悠论坛.: K0 U9 m4 g1 P  Z( Z& ?
  Locale(String language,String country)
* E# H* e7 E" h1 {" Owww.huuoo.com  Locale(String language,String country,String variant)
: f7 i5 h% G6 ^+ z: Q) K0 W8 ?忽悠,忽悠社区,忽悠论坛.  参数说明:language??在ISO-639中定义的代码,由两个小写字母组成。
7 ]  k) X: q& M; G6 ~www.huuoo.com       country??在ISO-3166中定义的代码,由两个大写字母组成。
. I7 _7 f0 g* h" s4 t( M; g* B- @       variant??售货商以及特定浏览器的代码,例如使用WIN代表Windows。忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。0 }5 F0 O" S% W* U
  (Ⅱ)调用Locale类中定义的常量忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。6 Q* {0 z$ c- E8 s$ T
  Local类提供了大量的常量供用户创建Locale对象。忽悠社区' P1 ^& ]! A% K! S/ h9 Y( `
  例 Locale.CHINA
7 v' R. L, H/ W3 J. j/ f忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。    为中国创建一个Locale的对象。
  p: D5 _9 o# v9 f: J忽悠,忽悠社区,忽悠论坛.  类TimeZone和类Locale中的其它方法,读者可查阅API。
9 u8 P% J5 ~- N) F" e( c  (5)public GregorianCalendar(int year,int month,int date)
' n2 _3 g! S7 [: W/ W% z* x忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。
  (6)public GregorianCalendar(int year,int month,int date,int hour,int minute)
! u; J8 I1 H8 P6 ?$ x1 Lwww.huuoo.com  (7)public GregorianCalendar(int year,int month,int date,int hour,int minute,int second)
% f0 m: U; g/ |7 U$ {* Zwww.huuoo.com
  用给定的日期和时间创建一个GregorianCalendar的对象。
& k8 a0 E8 k. v忽悠社区  参数说明:
; @# a4 D* x5 Pwww.huuoo.com  year-设定日历对象的变量YEAR;month-设定日历对象的变量MONTH;
3 R% d$ ~8 a( B4 g% \" q  H忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。  date-设定日历对象的变量DATE;hour-设定日历对象的变量HOUR_OF_DAY;
' v+ X+ ~% W2 `5 U- A; M7 ^' c% H忽悠,忽悠社区,忽悠论坛.  minute-设定日历对象的变量MINUTE;second-设定日历对象的变量SECOND。
' L8 _, d7 x) ], A) G  与Date类中不同的是year的值没有1900这个下限,而且year的值代表实际的年份。month的含义与Date类相同,0代表1月,11代表12月。
  1. GregorianCalendar cal=new GregorianCalendar(1991,2,4)
复制代码
  cal的日期为1991年3月4号。忽悠,忽悠社区,忽悠论坛.; O* p) D% @( H& K0 a
  除了与Date中类似的方法外,Calendar类还提供了有关方法对日历进行滚动计算和数学计算。计算规则由给定的日历系统决定。进行日期计算时,有时会遇到信息不足或信息不实等特殊情况。Calendar采取了相应的方法解决这些问题。当信息不足时将采用缺省设置,在GregorianCalendar类中缺省设置一般为YEAR=1970,MONTH=JANUARY,DATE=1。
, T  L+ u; M0 T# E0 E, V5 I/ B忽悠社区  当信息不实时,Calendar将按下面的次序优先选择相应的Calendar的变量组合,并将其它有冲突的信息丢弃。
/ n9 n9 Z9 D, U5 k! _7 w忽悠社区  MONTH+DAY_OF_MONTH忽悠社区- E' b2 m. z! T! U0 x
  MONTH+WEEK_OF_MONTH+DAY_OF_WEEK忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。, y1 L! ]1 ~+ P3 e
  MONTH+DAY_OF_WEEK_OF_MONTH+DAY_OF_WEEK忽悠,忽悠社区,忽悠论坛.! @! c$ C6 }7 I7 ?* m
  DAY_OF+YEAR忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。' Y1 [& u* z9 r) D
  DAY_OF_WEEK_WEEK_OF_YEARwww.huuoo.com) d: Q( D5 q7 Z; Y
  HOUR_OF_DAY忽悠,忽悠社区,忽悠论坛.5 C# E7 C2 O9 J8 O( A
, L4 ^' e2 M+ E' @
1.4 随机数类Randomwww.huuoo.com5 B3 a3 Z$ k9 U) C+ P

7 m' z" ?9 l5 T/ p  Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机数。
( E5 A0 X7 A, S* L2 r% u  类Random中的方法十分简单,它只有两个构造方法和六个普通方法。忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。( H9 {: Z9 B( k6 f  E
  构造方法:www.huuoo.com& T( d+ t7 E" Y+ P; K# i
  (1)public Random()www.huuoo.com( }  D+ e) h  L0 @, U  T
  (2)public Random(long seed)忽悠社区6 b- J6 i- g) G8 c$ r1 n/ Q
  Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。
3 m; i( p  [. b0 h* b  普通方法:
% D! A; Q4 n- i" X; z, p4 O( `忽悠,忽悠社区,忽悠论坛.  (1)public synonronized void setSeed(long seed)忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。5 d7 K) S4 N; M
  该方法是设定基值seed。忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。4 ]: E0 [: ^2 G4 [6 c+ }8 |
  (2)public int nextInt()
" t/ t) B9 u) @www.huuoo.com
  该方法是产生一个整型随机数。忽悠社区5 s+ ~9 N, z7 i* ^4 q
  (3)public long nextLong()忽悠,忽悠社区,忽悠论坛.$ T6 F! @* b$ N) u; r4 r
  该方法是产生一个long型随机数。
! W" W0 Z# T) h: g/ Q+ n. F1 v8 G  (4)public float nextFloat()
, d/ T( O  m2 i3 O: J' R
  该方法是产生一个Float型随机数。: s$ ~; [& M6 F6 O& f- z7 i
  (5)public double nextDouble()
# [8 W) `+ j. s5 p
  该方法是产生一个Double型随机数。忽悠,忽悠社区,忽悠论坛.3 B+ e1 n# `: Z
  (6)public synchronized double nextGoussian()
1 l* x! x( F0 o5 s
  该方法是产生一个double型的Goussian随机数。
( U6 Y& L) E) a- v; w忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。例1.2 RandomApp.java。
  1. import java.util.Random;

  2.   public class RandomApp{
  3.    public static void main(String args[]){
  4.     Random ran1=new Random();
  5.     Random ran2=new Random(12345);
  6.     //创建了两个类Random的对象。
  7.     System.out.println("The 1st set of random numbers:");
  8.     System.out.println("\t Integer:"+ran1.nextInt());
  9.     System.out.println("\t Long:"+ran1.nextLong());
  10.     System.out.println("\t Float:"+ran1.nextFloat());
  11.     System.out.println("\t Double:"+ran1.nextDouble());
  12.     System.out.println("\t Gaussian:"+ran1.nextGaussian());
  13.     //产生各种类型的随机数
  14.     System.out.print("The 2nd set of random numbers:");
  15.     for(int i=0;i<5;i++){
  16.      System.out.println(ran2.nextInt()+" ");
  17.      if(i==2) System.out.println();
  18.      //产生同种类型的不同的随机数。
  19.      System.out.println();//原文如此
  20.     }
  21.    }
  22.   }
复制代码
运行结果:0 h) w4 p$ h( u0 R
The 1st set of random numbers:. k( W: M3 N( P/ G
    Integer:-173899656www.huuoo.com7 @! ^& z5 i, j% u* f  w
    Long:8056223819738127077
9 [6 f% _  i( v8 Y4 V0 d2 j    Float:0.6293638
2 S: P  L- }, L6 M" G4 O. F5 w忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。    Double:0.7888394520265607
3 W+ _( y! Q" H    Gaussian:0.5015701094568733
- a9 c) z  ^2 [( O& ^, i6 J7 `" ]忽悠社区是综合性社区网站,将最新、最快、最专业的资讯、新闻,图片,视频奉献给所有爱好者。  The 2nd set of random numbers:1553932502
* }' x# ^! d9 U6 P$ v忽悠,忽悠社区,忽悠论坛.  -2090749135
; h9 N. n4 ^; H' m" K3 \& b  -287790814
; T: a7 |7 H" A" \' S6 W" ~  -355989640
- b$ h+ M* G# X( r% k# v  -716867186
返回列表
高级回复 | 发新话题
B Color Image Link Quote Code Smilies
换一个