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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

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

voidtestSetTime(){Datedate=newDate();

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

long

time=date.getTime();

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

time+=60*60*24*1000;

date.setTime(time);

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

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

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

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

long

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

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

java.text.SimpleDateFormat是一個(gè)以與語言環(huán)境有關(guān)的方式來格式化和解析日期的具體類。它允許進(jìn)行格式化(日期->文本)、解析(文本->日期)和規(guī)范化構(gòu)造方法-SimpleDateFormat()-SimpleDateFormat(Stringpattern)用給定的模式和默認(rèn)語言環(huán)境的日期格式符號(hào)構(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方法用于按照特定格式將表示時(shí)間的字符串轉(zhuǎn)換為Date對(duì)象*/public

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

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

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

/**使用Calendar及子類獲取時(shí)間*/public

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

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

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

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

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

/**獲取時(shí)間及分量*/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的時(shí)間值,返回指定日歷字段可能擁有最大值,例如:

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í)間分量的值加上給定的值,若給定的值為負(fù)數(shù)則是減去給定的值/**輸出一年后再減去3個(gè)月的日期*/public

voidtestAdd(){Calendarcalendar=Calendar.getInstance();calendar.add(Calendar.YEAR,1);//加一年calendar.add(Calendar.MONTH,-3);//減3個(gè)月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對(duì)象設(shè)置日期,在獲取日期*/

public

voidtestSetTimeAndGetTime(){

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

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

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

Collection定義了一個(gè)add方法用于向集合中添加新元素-booleanadd(Ee)該方法會(huì)將給定的元素添加進(jìn)集合,若添加成功則返回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)該方法會(huì)用于判斷給定的元素是否被包含在集合中。若包含則返回true,否則返回false.這里需要注意的是,集合在判斷元素是否被包含在集合中是根據(jù)每個(gè)元素的equals()方法進(jìn)行比較后的結(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方法和對(duì)象的equals方法相關(guān)

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

intsize()//該方法用于返回當(dāng)前集合中的元素總數(shù)。voidclear()//該方法用于清空當(dāng)前集合booleanisEmpty()//該方法用于判斷當(dāng)前集合中是否不包含任何元素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)該方法需要我們傳入一個(gè)集合,并將該集合中的所有元素添加到當(dāng)前集合中。如果此collection用于調(diào)用而發(fā)生更改,則返回truebooleancontainsAll(Collection<?>c)該方法用于判斷當(dāng)前集合是否包含給定集合中的所有元素,若包含則返回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是一個(gè)接口,集合在重寫Collection的iterator()方法時(shí)利用內(nèi)部類提供了迭代器的實(shí)現(xiàn)。Iterator提供了統(tǒng)一的遍歷集合元素的方式,其提供了用于遍歷集合的兩個(gè)方法:-booleanhasNext()判斷集合是否還有元素可以遍歷-Enext();返回迭代的下一個(gè)元素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方法

在使用迭代器遍歷集合時(shí),不能通過集合的remove方法刪除集合元素,否則會(huì)拋出并發(fā)更改異常。我們可以通過迭代器自身提供的remove()方法來刪除通過next()迭代出的元素。-voidremove();迭代器的刪除方法是在原集合中刪除元素這里需要注意的是,在調(diào)用remove方法前必須通過迭代器的next()方法迭代過元素,那么刪除的就是這個(gè)元素。并且不能再次調(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ǔ)課程-日期操作、集合框架增強(qiáng)型for循環(huán)

Java5.0之

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論