JavaSE-日期操作、集合框架3_第1頁
JavaSE-日期操作、集合框架3_第2頁
JavaSE-日期操作、集合框架3_第3頁
JavaSE-日期操作、集合框架3_第4頁
JavaSE-日期操作、集合框架3_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

JAVA基礎(chǔ)課程-日期操作、集合框架-唐霞JAVA基礎(chǔ)課程-日期操作、集合框架Java中的時間

Java中的時間使用標準類庫的Date類表示,是用距離一個固定時間點的毫秒數(shù)(可正可負,long類型)表達一個特定的時間點;固定的時間點叫紀元(epoch),是UTC時間1970年1月1日00:00:00UTC(UniversalTimeCoordinated世界調(diào)整時間)與GMT(GreenwichMeanTime格林威治時間)一樣,是一種具有實際目的的科學標準時間。JAVA基礎(chǔ)課程-日期操作、集合框架Date類簡介

java.util.Date類封裝日期及時間信息。Date類的大多數(shù)用于進行時間分量計算的方法已經(jīng)被Calendar取代。Datedate=newDate();//系統(tǒng)當前的日期及時間信息System.out.println(date);//SunMay0816:13:59CST2016longtime=date.getTime();//1970年1月1日至今的毫秒數(shù)JAVA基礎(chǔ)課程-日期操作、集合框架setTime和getTime方法

/**使用setTime和getTime設(shè)置及獲取時間*/public

voidtestSetTime(){Datedate=newDate();

//輸出當天此時此刻的日期和時間System.out.println(date);

long

time=date.getTime();

//增加一天所經(jīng)歷的毫秒數(shù)

time+=60*60*24*1000;

date.setTime(time);

//輸出明天此時此刻的日期和時間System.out.println(date);}JAVA基礎(chǔ)課程-日期操作、集合框架setTime和getTime方法

/**獲取當前系統(tǒng)時間*/public

voidtestGetTime(){Datedate=newDate();System.out.println(date);

//1970年1月1日零時距此刻的毫秒數(shù)

long

time=date.getTime();System.out.println(time);}JAVA基礎(chǔ)課程-日期操作、集合框架Date重寫toString方法

Date重寫了toString()方法,用一個字符串來描述當前Date對象所表示的時間。格式如下:SatApr2321:31:08CST2016JAVA基礎(chǔ)課程-日期操作、集合框架SimpleDateFormat簡介

java.text.SimpleDateFormat是一個以與語言環(huán)境有關(guān)的方式來格式化和解析日期的具體類。它允許進行格式化(日期->文本)、解析(文本->日期)和規(guī)范化構(gòu)造方法-SimpleDateFormat()-SimpleDateFormat(Stringpattern)用給定的模式和默認語言環(huán)境的日期格式符號構(gòu)造SimpleDateFormat方法-finalStringformat(Datedate)Date=>String-Dateparse(Stringsource)throwsParseExceptionString=>DateJAVA基礎(chǔ)課程-日期操作、集合框架日期模式匹配字符

JAVA基礎(chǔ)課程-日期操作、集合框架將Date格式化為String

/**日期格式化*/public

voidtestFormat(){SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");Datedate=newDate();StringdateStr=sdf.format(date);System.out.println(dateStr);}JAVA基礎(chǔ)課程-日期操作、集合框架將String解析為Date

/**和format方法相反,parse方法用于按照特定格式將表示時間的字符串轉(zhuǎn)換為Date對象*/public

voidtestParse()throwsException{Stringstr="2016-4-23";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");Datedate=sdf.parse(str);System.out.println(date);}JAVA基礎(chǔ)課程-日期操作、集合框架Calendar簡介

java.util.Calendar類用于封裝日歷信息,其主要作用在于其方法可以對時間分量進行運算。Calendar是抽象類,其具體子類針對不同國家的日歷系統(tǒng),其中應(yīng)用最廣泛的是GregorianCalendar(格林高里歷,即通用的陽歷),對應(yīng)世界上絕大多數(shù)國家/地區(qū)使用的標準日歷系統(tǒng)。JAVA基礎(chǔ)課程-日期操作、集合框架getInstance方法

Calendar提供了一個類方法getInstance,以獲得此類型的一個通用的對象。Calendar的getInstance方法返回一個Calendar對象,其日歷字段已由當前日期和時間初始化Calendarc=Calendar.getInstance();JAVA基礎(chǔ)課程-日期操作、集合框架getInstance方法

/**使用Calendar及子類獲取時間*/public

voidtestGetInstance(){Calendarc=Calendar.getInstance();

//輸出Calendar對象所屬的實際類型System.out.println(c.getClass().getName());

//getTime方法返回對應(yīng)的Date對象System.out.println(c.getTime());

//創(chuàng)建GregorianCalendar對象GregorianCalendarc1=newGregorianCalendar(2016,Calendar.APRIL,23);System.out.println(c1.getTime());}JAVA基礎(chǔ)課程-日期操作、集合框架設(shè)置日期及時間分量

/**設(shè)置日期及分量*/public

voidtestSet(){Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,2016);c.set(Calendar.MONTH,Calendar.APRIL);c.set(Calendar.DATE,23);System.out.println(c.getTime());

//SatApr2322:14:51CST2016c.set(Calendar.DATE,32);System.out.println(c.getTime());

//MonMay0222:14:51CST2016}JAVA基礎(chǔ)課程-日期操作、集合框架獲取日期及時間分量

使用Calendar提供的get方法及一些常量可以獲取日期及時間分量staticintYear指示年份的字段數(shù)字staticintMONTH指示月份的字段數(shù)字staticintDATE指示一個月份中的第幾天staticintDAY_OF_WEEK指示一個星期中的某天,1為星期日JAVA基礎(chǔ)課程-日期操作、集合框架獲取日期及時間分量

/**獲取時間及分量*/public

voidtestGet(){Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,2016);c.set(Calendar.MONTH,Calendar.APRIL);c.set(Calendar.DATE,23);

intdayOfWeek=c.get(Calendar.DAY_OF_WEEK);System.out.println(dayOfWeek);

//輸出為7,表示周六,周日為每周的第一天}JAVA基礎(chǔ)課程-日期操作、集合框架getActualMaximum方法

intgetActualMaximum(intfield)給定此Calendar的時間值,返回指定日歷字段可能擁有最大值,例如:

int

year=2016;Calendarc=Calendar.getInstance();c.set(Calendar.YEAR,year);c.set(Calendar.DATE,1);for(int

month=Calendar.JANUARY;month<=Calendar.DECEMBER;month++){c.set(Calendar.MONTH,month);

System.out.println(year+"年"+(month+1)+"月:"+c.getActualMaximum(Calendar.DATE)+"天");

}JAVA基礎(chǔ)課程-日期操作、集合框架add方法

voidadd(intfield,intmount)為給定的時間分量的值加上給定的值,若給定的值為負數(shù)則是減去給定的值/**輸出一年后再減去3個月的日期*/public

voidtestAdd(){Calendarcalendar=Calendar.getInstance();calendar.add(Calendar.YEAR,1);//加一年calendar.add(Calendar.MONTH,-3);//減3個月System.out.println("year:"+calendar.get(Calendar.YEAR));System.out.println("month:"+(calendar.get(Calendar.MONTH)+1));System.out.println("day:"+calendar.get(Calendar.DAY_OF_MONTH));}JAVA基礎(chǔ)課程-日期操作、集合框架setTime與getTime方法

DategetTime()使用Date描述Calendar表示的日期并返回voidsetTime(Dated)使Calendar表示Date所描述的日期

/**通過Date對象設(shè)置日期,在獲取日期*/

public

voidtestSetTimeAndGetTime(){

Calendarcalendar=Calendar.getInstance();Datedate=newDate();calendar.setTime(date);date=calendar.getTime();}JAVA基礎(chǔ)課程-日期操作、集合框架List和Set

在實際開發(fā)中,需要將使用的對象存儲于特定數(shù)據(jù)結(jié)構(gòu)的容器中。JDK提供了這樣的容器-集合(Collection)。Collection是一個接口,定義了集合相關(guān)的操作方法,其中兩個子接口:List與SetList:可重復集Set:不可重復集JAVA基礎(chǔ)課程-日期操作、集合框架集合持有對象的引用

集合中存儲的都是引用類型元素,并且集合只保存每個元素對象的引用,而并非將元素對象本身存入集合。JAVA基礎(chǔ)課程-日期操作、集合框架add方法

Collection定義了一個add方法用于向集合中添加新元素-booleanadd(Ee)該方法會將給定的元素添加進集合,若添加成功則返回true,否則返回falseJAVA基礎(chǔ)課程-日期操作、集合框架add方法

public

voidtestAdd(){Collection<String>c=newArrayList<String>();System.out.println(c);//[]c.add("a");c.add("b");c.add("c");System.out.println(c);//[a,b,c]}JAVA基礎(chǔ)課程-日期操作、集合框架contains方法

booleancontains(Objecto)該方法會用于判斷給定的元素是否被包含在集合中。若包含則返回true,否則返回false.這里需要注意的是,集合在判斷元素是否被包含在集合中是根據(jù)每個元素的equals()方法進行比較后的結(jié)果通常有必要重寫equals()保證contains()方法的合理結(jié)果JAVA基礎(chǔ)課程-日期操作、集合框架contains方法

public

voidtestContains(){Collection<Cell>cells=newArrayList<Cell>();cells.add(newCell(1,2));cells.add(newCell(1,3));cells.add(newCell(2,2));cells.add(newCell(2,3));Cellcell=newCell(1,3);//List集合contains方法和對象的equals方法相關(guān)

booleanflag=cells.contains(cell);//如果cell不重寫equals方法將為falseSystem.out.println(flag);//true}JAVA基礎(chǔ)課程-日期操作、集合框架size、clear、isEmpty

intsize()//該方法用于返回當前集合中的元素總數(shù)。voidclear()//該方法用于清空當前集合booleanisEmpty()//該方法用于判斷當前集合中是否不包含任何元素JAVA基礎(chǔ)課程-日期操作、集合框架size、clear、isEmpty

public

voidtestSizeAndClearAndIsEmpty(){Collection<String>c=newHashSet<String>();System.out.println(c.isEmpty());//true

c.add("java");

c.add("cpp");

c.add("php");

c.add("c#");

c.add("objective-c");System.out.println("isEmpty:"+c.isEmpty()+",size:"+c.size());//isEmpty:false,size:5

c.clear();System.out.println("isEmpty:"+c.isEmpty()+",size:"+c.size());//isEmpty:true,size:0}JAVA基礎(chǔ)課程-日期操作、集合框架addAll、containsAll

booleanaddAll(Collection<?extendsE>c)該方法需要我們傳入一個集合,并將該集合中的所有元素添加到當前集合中。如果此collection用于調(diào)用而發(fā)生更改,則返回truebooleancontainsAll(Collection<?>c)該方法用于判斷當前集合是否包含給定集合中的所有元素,若包含則返回true;JAVA基礎(chǔ)課程-日期操作、集合框架addAll、containsAll

public

voidtestAddAllAndContainsAll(){Collection<String>c1=newArrayList<String>();c1.add("java");c1.add("cpp");c1.add("php");c1.add("c#");c1.add("objective-c");

System.out.println(c1);//[java,cpp,pho,c#,objective-c]

Collection<String>c2=newHashSet<String>();

c2.addAll(c1);

System.out.println(c2);//[cpp,php,c#,java,objective-c]

Collection<String>c3=newArrayList<String>();

c3.add("java");

c3.add("cpp");

System.out.println(c1.containsAll(c3));//true}JAVA基礎(chǔ)課程-日期操作、集合框架hasNext、next方法

迭代器用于遍歷集合元素。獲取迭代器可以使用Collection定義的方法:-Iteratoriterator();迭代器Iterator是一個接口,集合在重寫Collection的iterator()方法時利用內(nèi)部類提供了迭代器的實現(xiàn)。Iterator提供了統(tǒng)一的遍歷集合元素的方式,其提供了用于遍歷集合的兩個方法:-booleanhasNext()判斷集合是否還有元素可以遍歷-Enext();返回迭代的下一個元素JAVA基礎(chǔ)課程-日期操作、集合框架hasNext、next方法

public

voidtestHasNextAndNext(){Collection<String>c=newHashSet<String>();

//System.out.println(c.isEmpty);//truec.add("java");c.add("cpp");c.add("php");c.add("c#");c.add("objective-c");Iterator<String>it=c.iterator();

while(it.hasNext()){Stringstr=it.next();System.out.println(str);

}}JAVA基礎(chǔ)課程-日期操作、集合框架remove方法

在使用迭代器遍歷集合時,不能通過集合的remove方法刪除集合元素,否則會拋出并發(fā)更改異常。我們可以通過迭代器自身提供的remove()方法來刪除通過next()迭代出的元素。-voidremove();迭代器的刪除方法是在原集合中刪除元素這里需要注意的是,在調(diào)用remove方法前必須通過迭代器的next()方法迭代過元素,那么刪除的就是這個元素。并且不能再次調(diào)用remove方法,除非再次調(diào)用next()后方可再次調(diào)用。JAVA基礎(chǔ)課程-日期操作、集合框架remove方法

public

voidtestRemove(){Collection<String>c=newHashSet<String>();c.add("java");c.add("cpp");c.add("php");c.add("c#");c.add("objective-c");System.out.println(c);//[cpp,php,c#,java,objective-c]Iterator<String>it=c.iterator();

while(it.hasNext()){Stringstr=it.next();

if(str.indexOf('c')!=-1){it.remove();//刪除包含字母c的元素

}}System.out.println(c);//[php,,java]}JAVA基礎(chǔ)課程-日期操作、集合框架增強型for循環(huán)

Java5.0之

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論