集合4(高級for,可變參數,靜態導入,Date,Calendar,Math,System,RunTime)

 

 

一.高級For循環

1.格式:

for(數據類型 變量名 :被遍歷的集合(Collection)或者數姐)

{

}

2.高級for對集合進行遍歷。

只能獲取集合元素,但是不能對集合進行操作。

迭代器除了遍歷,還可以進行remove集合中元素的動作。

3.傳統for循環和高級for循環有什麼區別呢?

高級for有一個侷限性,必須有被遍歷的目標。

建議在遍歷數組的時候,還是用傳統for循環,因爲傳統for循環可以定義角標。

4.示例:

ArrayList<String> al = new ArrayList<String>();

al.add("abc1");

al.add("abc2");

al.add("abc3");

for (String s : al)

{

s ="kk";

System.out.println(s);

}

二 可變參數

1.JDK1.5版本出現的新特性。

方法的可變參數:

在使用時注意:可變參數一定要定義在參數列表的最後面。

2.代碼演示:

class ParamMethodDemo

{

public static void main(String[] args)

{

//show(3,4);

/*

//雖然少定義了多個方法。但是每次都要定義一個數組,作爲實際參數。

int[] arr = {3,4};

show(arr);

int[] arr1 = {2,3,4,5};

show(arr1);

*/

/*

可變參數

其實就是上一種數組參數的簡寫形式。

不用每一次都手動的建立數組對象。

只要將要操作的元素作爲參數傳遞即可。

隱式將這些參數封裝成了數組。

*/

show("haha",2,3,4,5,6);

//show(2,3,4,5,6);

//show(2,5,3,5,56,76,43,2,3,);

//show();

}

public static void show(int... arr)

{

System.out.println(arr.length);

}

public static void show(String str,int... arr)

{

System.out.println(arr.length);

}

}

三靜態導入

StaticImport 靜態導入

當類名重名時,需要指定具體的包名。

當方法重名時,要指定具體所屬的對象或者類。

import static java.util.Arrays.*;//導入的是Arrays這個類中的所有靜態成員。

import static java.lang.System.*;//導入了System類中所有靜態成員。

四 System類

1.System(java.lang):

System:類中的方法和屬性都是靜態的。

out: 標準輸出,默認是控制檯。

in : 標準輸入,默認是鍵盤。

該類中的方法:

1)static Properties getProperties()

確定當前的系統屬性。

2)static String getProperty(String key)

獲取指定鍵指示的系統屬性。

3)static String getProperty(String key, String def)

獲取用指定鍵描述的系統屬性。

 

2.Properties(java.util)類:

extends Hashtable<Object,Object>

Properties 類表示了一個持久的屬性集。Properties 可保存在流中或從流中加載。

屬性列表中每個鍵及其對應值都是一個字符串。

 

該類中的方法:

1)String getProperty(String key)

用指定的鍵在此屬性列表中搜索屬性。

2)String getProperty(String key, String defaultValue)

用指定的鍵在屬性列表中搜索屬性。

3)Object setProperty(String key, String value)

調用 Hashtable 的方法 put   相似。

 

五Runtime類

1.Runtime(java.lang)對象

該類並沒有提供構造函數。

說明不可以new對象,那麼會直接想到該類中的方法都是靜態的。

發現該類中還有非靜態方法。

說明該類肯定會提供了方法獲取本類對象,而且該方法是靜態的,並且返回值類型是本類類型。

由這個特點可以看出該類使用了單例設計模式完成。

該方法是static Runtime getRuntime();

2.該類中方法:

1)getRuntime()

public static Runtime getRuntime()

返回與當前 Java 應用程序相關的運行時對象。Runtime 類的大多數方法是實例方法,

並且必須根據當前的運行時對象對其進行調用。

2 exec()

public Process exec(String command)

throws IOException在單獨的進程中執行指定的字符串命令。

這是一個很有用的方法。對於 exec(command) 形式的調用而言,其行爲與調用 exec(command, null, null) 完全相同。

3.Process進程類----destroy()方法

abstract void destroy() 殺掉子進程。

 

六.Date

1.Date類(java.util包中)

1).構造方法:

public Date()

分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)。

 

2.DateFormat類(java.text包)

該類是個抽象類,其子類是SimpleDateFormat

1)SimpleDateFormat的構造方法:

SimpleDateFormat(String pattern)

用給定的模式和默認語言環境的日期格式符號構造 SimpleDateFormat。

2)日期和時間模式 結果

"yyyy.MM.dd G 'at' HH:mm:ss z" 2001.07.04 AD at 12:08:56 PDT

"EEE, MMM d, ''yy" Wed, Jul 4, '01

"h:mm a" 12:08 PM

"hh 'o''clock' a, zzzz" 12 o'clock PM, Pacific Daylight Time

"K:mm a, z" 0:08 PM, PDT

"yyyyy.MMMMM.dd GGG hh:mm aaa" 02001.July.04 AD 12:08 PM

"EEE, d MMM yyyy HH:mm:ss Z" Wed, 4 Jul 2001 12:08:56 -0700

"yyMMddHHmmssZ" 010704120856-0700

"yyyy-MM-dd'T'HH:mm:ss.SSSZ" 2001-07-04T12:08:56.235-0700

3)format()方法

public final String format(Date date)

將一個 Date 格式化爲日期/時間字符串。

代碼示例:

 
public static void main(String[] args) { Date d = new Date(); System.out.println(d);//打印的時間看不懂,希望有些格式。 //將模式封裝到SimpleDateFormat對象中。 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss"); //調用format方法讓模式格式化指定Date對象。 String time = sdf.format(d); System.out.println("time= "+ time); long l = System.currentTimeMillis(); Date d1 = new Date(l); System.out.println("d1:"+d1); } 
 

 

七 Calendar類

1.Calendar抽象類(java.util)-----日曆

Calendar 對象能夠生成爲特定語言和日曆風格實現日期-時間格式化所需的所有日曆字段值

1)Calendar 類是一個抽象類,它爲特定瞬間與一組諸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等

日曆字段之間的轉換提供了一些方法,併爲操作日曆字段(例如獲得下星期的日期)提供了一些方法。

瞬間可用毫秒值來表示,它是距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的偏移量

2)getInstance()方法:

與其他語言環境敏感類一樣,Calendar 提供了一個類方法 getInstance,

以獲得此類型的一個通用的對象。Calendar 的 getInstance 方法返回一個 Calendar 對象,

其日曆字段已由當前日期和時間初始化:

Calendar rightNow = Calendar.getInstance();

3)get()方法:

public int get(int field)

返回給定日曆字段的值

4)set()方法:

public final void set(int year,int month,int date)

設置日曆字段 YEAR、MONTH 和 DAY_OF_MONTH 的值

5)add()方法:

public abstract void add(int field,int amount)

根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量。

例如,要從當前日曆時間減去 5 天,可以通過調用以下方法做到這一點:

 

add(Calendar.DAY_OF_MONTH, -5)。

 

八 Math類和Random類

1.Math類(java.lang包中)//隱式導入類

1)ceil():

static double ceil(double a)

返回最小的(最接近負無窮大)double 值,該值大於等於參數,並等於某個整數。

2)floor():

static double floor(double a)

返回最大的(最接近正無窮大)double 值,該值小於等於參數,並等於某個整數。

3)round():

static long round(double a)

返回最接近參數的 long。

4)pow():

static double pow(double a, double b)

返回第一個參數的第二個參數次冪的值。

5)random():

static double random()

返回帶正號的 double 值,該值大於等於 0.0 且小於 1.0。

 

 

2.Random類(java.util)

1)nextInt():

int nextInt()

返回下一個僞隨機數,它是此隨機數生成器的序列中均勻分佈的 int 值。

代碼:

Random r = new Random();

for (int x=0; x<10; x++)

{

//int d = (int)(Math.random()*10+1);//返回0.0到1.0之間(含0不含1)的隨機數。

int d = r.netInt(10)+1;

sop(d);

}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章