版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
java類(lèi)庫(kù)和常用類(lèi)簡(jiǎn)介Java語(yǔ)言基礎(chǔ)類(lèi)庫(kù)String類(lèi)和StringBuffer類(lèi)常用工具類(lèi)庫(kù)2021/6/271類(lèi)庫(kù)簡(jiǎn)介java.lang它是由編譯器自動(dòng)引入的,包括:Object類(lèi),數(shù)據(jù)包裝類(lèi),數(shù)學(xué)類(lèi),異常處理類(lèi),線(xiàn)程類(lèi),字符串處理類(lèi),系統(tǒng)及運(yùn)行類(lèi),類(lèi)操作類(lèi)等;java.applet用于創(chuàng)建小程序;java.awt用于創(chuàng)建圖形用戶(hù)界面;java.io輸入輸出流網(wǎng)絡(luò)包,用于網(wǎng)絡(luò)通訊java.util實(shí)用程序包,提供許多不同功能的類(lèi),如日期時(shí)間類(lèi),矢量類(lèi),數(shù)據(jù)結(jié)構(gòu)類(lèi)等2021/6/272Java中的Math類(lèi)Math類(lèi)
數(shù)學(xué)類(lèi)包含了許多數(shù)學(xué)函數(shù),如sin、cos、exp、abs等。Math類(lèi)是一個(gè)工具類(lèi),它在解決與數(shù)學(xué)有關(guān)的一些問(wèn)題是有著非常重要的作用。
這個(gè)類(lèi)有兩個(gè)靜態(tài)屬性:E和PI。E代表數(shù)學(xué)中的e2.7182818,而PI代表派pi3.1415926。引用時(shí),用法如:Math.E和Math.Pi2021/6/273Java中的Math類(lèi)這個(gè)類(lèi)的方法有:
publicstaticintabs(inta)
publicstaticlongabs(longa)
publicstaticfloatabs(floata)
publicstaticdoubleabs(doublea)
abs方法用來(lái)求絕對(duì)值。
2021/6/274Java中的Math類(lèi)publicstaticnativedoublesin(doublea)
sin求正弦函數(shù)。
publicstaticnativedoubletan(doublea)
tan求正切函數(shù)。
atan求反正切函數(shù)。publicstaticnativedoublecos(doublea)
cos求余弦函數(shù)?!?021/6/275Java中的Math類(lèi)publicstaticnativedoubleceil(doublea)
ceil返回最小的大于a的整數(shù)。(天花板)publicstaticnativedoubleexp(doublea)
exp求e的a次冪。publicstaticnativedoublefloor(doublea)
floor返回最大的小于a的整數(shù)。publicstaticnativedoublelog(doublea)
log返回lna。2021/6/276Java中的Math類(lèi)publicstaticnativedoublepow(doublea,doubleb)
pow求a的b次冪。publicstaticnativedoublesqrt(doublea)
sqrt求a的開(kāi)平方。publicstaticsynchronizeddoublerandom()
返回0到1之間的隨機(jī)數(shù)。publicstaticround(doubled)publicstaticround(floatf)
取整,四舍五入2021/6/277Java中的Math類(lèi)publicclassMathDemo{publicstaticvoidmain(Stringargs[]){System.out.println(Math.ceil(3.45));System.out.println(Math.floor(3.55));System.out.println(Math.round(3.35));System.out.println(Math.round(3.5));System.out.println(Math.random());}}2021/6/278隨機(jī)數(shù)類(lèi)java.util.Random
Random()
創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器。Random(long
seed)
使用單個(gè)long種子創(chuàng)建一個(gè)新的隨機(jī)數(shù)生成器。2021/6/279隨機(jī)數(shù)類(lèi)java.util.RandomnextDouble()
返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在0.0和1.0之間均勻分布的double值。nextFloat()
返回下一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在0.0和1.0之間均勻分布的float值2021/6/2710隨機(jī)數(shù)類(lèi)java.util.RandomnextInt()
返回下一個(gè)偽隨機(jī)數(shù),它是此隨機(jī)數(shù)生成器的序列中均勻分布的int值。nextInt(int
n)
返回一個(gè)偽隨機(jī)數(shù),它是取自此隨機(jī)數(shù)生成器序列的、在0(包括)和指定值(不包括)之間均勻分布的int值。2021/6/2711String類(lèi)和StringBuffer類(lèi)字符串是字符的序列,它是組織字符的基本數(shù)據(jù)結(jié)構(gòu),從某種程度上來(lái)說(shuō)有些類(lèi)似于字符的數(shù)組。在Java中,字符串被當(dāng)作對(duì)象來(lái)處理。程序中需要用到的字符串可以分為兩大類(lèi),一類(lèi)是創(chuàng)建之后不會(huì)再做修改和變動(dòng)的字符串常量;另一類(lèi)是創(chuàng)建之后允許再做更改和變化的字符串變量。對(duì)于字符串常量,由于程序中經(jīng)常需要對(duì)它做比較,搜索之類(lèi)的操作,所以通常把它放在一個(gè)具有一定名稱(chēng)的對(duì)象之中,由程序?qū)υ搶?duì)象完成上述操作。在Java中,存放字符串常量的對(duì)象用String類(lèi),對(duì)于字符串變量,由于程序中經(jīng)常需要對(duì)它做添加,插入,修改等操作,一般存放在StringBuffer類(lèi)的對(duì)象中。2021/6/2712字符串
——String字符串常量使用雙引號(hào)括住的一串字符,比如:
"Helloworld!"Java編譯器自動(dòng)為每一個(gè)字符串常量生成一個(gè)String類(lèi)的實(shí)例,因此可以用字符串常量直接初始化一個(gè)String對(duì)象,如:
Strings="Helloworld!";2021/6/2713要?jiǎng)?chuàng)建類(lèi)String的一個(gè)對(duì)象并進(jìn)行初始化,需要調(diào)用類(lèi)String的構(gòu)造方法。類(lèi)String中提供了下面的一些構(gòu)造方法:String():無(wú)參數(shù)的缺省的構(gòu)造方法用來(lái)創(chuàng)建一個(gè)空串。
Strings=newString();
String(Stringvalue):利用已經(jīng)存在的字符串常量創(chuàng)建一個(gè)新的String對(duì)象,該對(duì)象的內(nèi)容與給出的字符串常量一致。
Strings=newString(“hello”);String(charvalue[]):通過(guò)給構(gòu)造方法傳遞一個(gè)字符數(shù)組可以創(chuàng)建一個(gè)非空串。
charchars[]={‘a(chǎn)’,‘b’,‘c’};
Strings=newString(chars);
3、字符串
——String:創(chuàng)建2021/6/2714String(char[],intstartIndex,intnumChars):這種方法用來(lái)創(chuàng)建一個(gè)非空串,并且指明所創(chuàng)建的字符串在字符數(shù)組中的起始地址以及所包含的字符個(gè)數(shù)。charchars[]={'a','b','c','d','e','f'};Strings=newString(chars,2,3);該方法生成的串s為“cde”。(注意數(shù)組的下標(biāo)從0開(kāi)始)3、字符串
——String:創(chuàng)建2021/6/2715String(bytemybyte[],bytehibyte):因?yàn)樵贗nternet上,格式采用八位的ASCII碼,所以Java的類(lèi)String提供了從byte型數(shù)組進(jìn)行初始化的構(gòu)造方法。其中hibyte指明各字符的高位字節(jié),對(duì)于通常所用的ASCII碼,必須將高位字節(jié)聲明為零,而其他的非拉丁文字符則置為非零。
bytemybyte[]={97,98,99}; Strings=newString(mybyte,0);該方法構(gòu)造的字符串s是“abc”。3、字符串
——String:創(chuàng)建2021/6/2716String(bytemybyte[],bytehibyte,intstartIndex,intnumChars):這種構(gòu)造方法與String(char[],intstartIndex,intnumChars)類(lèi)似,只是初始化的數(shù)組類(lèi)型不同。
bytemybyte[]={80,81,82,83,84,85};
Strings=newString(mybyte,0,2,3);該方法構(gòu)造的字符串s是“RST”。String(StringBufferbuffer):這個(gè)構(gòu)造函數(shù)利用一個(gè)已經(jīng)存在的StringBuffer對(duì)象為新建的String對(duì)象初始化。3、字符串
——String:創(chuàng)建2021/6/2717
1.lengthpublicintlength()
此方法返回字符串的字符個(gè)數(shù),如:
Strings="abc"; System.out.println(s.length());
則將顯示字符個(gè)數(shù)為3。3、字符串
——String:基本方法2021/6/27182.charAtpubliccharcharAt(intindex)
該方法返回字符串中index位置上的字符,其中index值的范圍是0~length-1。3.getChars
如果要從字符串中提取一個(gè)以上的字符,則可以用此方法:publicvoidgetchars(intsrcbegin,intend,charbuf[],intdstbegin)
其中,srcbegin為要提取的第一個(gè)字符在源串中的位置,
end為要提取的最后一個(gè)字符在源串中的位置,字符數(shù)組buf[]存放目的字符串,dstbegin為提取的字符串在目的串中的起始位置。3、字符串
——String:基本方法2021/6/27194.getbytespublicvoidgetbytes(intsrcbegin,intend,bytebyt[],intdstbegin)類(lèi)似于上一個(gè)方法,只是串中的字符均用8位表示,參數(shù)及用法同上。5.indexOf和lastIndexOf
為了在給定的字符串中檢索特定的字符或子串,類(lèi)String提供了上面兩種方法,并通過(guò)方法重寫(xiě)更方便的處理這類(lèi)問(wèn)題。這兩種方法中,如果查找成功,則返回匹配成功的字符的位置,如果沒(méi)有查找到,則都返回-1。
intindexOf(intch)intlastIndexOf(intch)
返回字符ch在字符串中出現(xiàn)的第一個(gè)和最后一個(gè)位置。3、字符串
——String:基本方法2021/6/2720 intindexOf(Stringstr) intlastindexOf(Stringstr)
返回子串str中第一個(gè)字符在字符串中出現(xiàn)的始末位置。
intindexOf(intch,intfromIndex)) intlastIndexOf(intch,intfromIndex))
返回字符ch在字符串中位置fromIndex以后出現(xiàn)的始末位置。intindexOf(Stringstr,intfromIndex) intlastIndexOf(Stringstr,intfromIndex)
返回子串str中的第一個(gè)字符在字符串中位置fromIndex
以后出現(xiàn)的始末位置。3、字符串
——String:基本方法2021/6/27216.+ 在Java中,運(yùn)算符“+”可以用來(lái)實(shí)現(xiàn)字符串的連接,如:
Strings=“Heis”+
age
+“yearsold.”
假設(shè)整數(shù)型變量age的值為15,那么,s的值為
“Heis15yearsOld”。7.compareTo publicintcompareTo(Stringstr)
該方法按字典次序比較兩個(gè)字符串的大小,如果源串較小,則返回一個(gè)小于0的值,如相等則返回0,否則返回一個(gè)大于0的值。3、字符串
——String:基本方法2021/6/27228.regionMatches booleanregionMatches
(inttoffset,Stringother,intooffset,intlen)
booleanregionMatches
(booleanignoreCase,inttoffset,Stringother, intooffset,intlen)上述兩個(gè)方法都是用來(lái)進(jìn)行模式匹配的,匹配成功則返回true,否則返回false。其中,toffset和ooffset分別指明當(dāng)前字符串和參數(shù)字符串中所要比較的子串的起始索引位置,len指明比較的長(zhǎng)度,而ignoreCase指明比較時(shí)是否區(qū)分大小寫(xiě)。對(duì)于第一種方法,比較是區(qū)分大小寫(xiě)的。Strings1=“tsinghua”Strings2=“itisTsingHua”;s1.regionMatches(0,s2,6,7);3、字符串
——String:基本方法2021/6/27239.equals和equalsIgnoreCase publicbooleanequals(objectstr) publicbooleanequalsIgnoreCase(objectstr) 判斷兩個(gè)字符串是否相等,則可以用此方法。相等則返回true,不等則返回false,兩種方法的區(qū)別在于equalsIgnoreCase不區(qū)分字母大小寫(xiě),而equals則須區(qū)分。10.其他方法
publicStringconcat(Stringstr);
將當(dāng)前字符串對(duì)象與給定的字符串str連接起來(lái)。3、字符串
——String:基本方法2021/6/2724publicStringreplace(charoldChar,charnewChar)將串中出現(xiàn)的特定字符用新的字符代替。publicStringsubstring(intbeginIndex)publicStringsubstring(intbeginIndex,intendIndex)用來(lái)得到字符串中指定范圍內(nèi)的子串。publicStringtoLowerCase()把串中的所有字符轉(zhuǎn)換成小寫(xiě)publicStringtoUpperCase()把串中的所有字符轉(zhuǎn)換成大寫(xiě)3、字符串
——String:基本方法2021/6/2725示例1:加密解密算法publicclassStringdemo{publicStringjiami(Stringstr){Stringresult="";intlength=str.length();charc[]=newchar[length];for(inti=0;i<str.length();i++){c[i]=(char)(str.charAt(i)+i);}returnnewString(c);}2021/6/2726示例,密碼加密publicStringjiemi(Stringstr){Stringresult="";intlength=str.length();charc[]=newchar[length];for(inti=0;i<str.length();i++){c[i]=(char)(str.charAt(i)-i);}returnnewString(c);}2021/6/2727示例,密碼加密publicstaticvoidmain(String[]args){Stringdemos=newStringdemo();Stringstr="1234567890abcdefghijklmnopqrstuvwxyz";System.out.println("加密前"+str);Stringafterjiami=s.jiami("1234567890abcdefghijklmnopqrstuvwxyz");System.out.println("加密后"+afterjiami);Stringafterjiemi=s.jiemi(afterjiami);System.out.println("解密后"+afterjiemi);}}2021/6/2728示例2:字符串分割public
classSplit_test{
public
static
voidmain(String[]args){ Stringstr="2010-06-01-19-56"; String[]str_split=str.split(“-”);//以“-”為標(biāo)志將字符串拆分
//循環(huán)打印字符數(shù)組元素
for(inti=0;i<str_split.length;i++){ System.out.println("str_split["+i+"]="+str_split[i]);}}}2021/6/2729
緩沖字符串類(lèi)(StringBuffer)處理的是長(zhǎng)度和內(nèi)容可變的字符串,使用StringBuffer類(lèi)可以方便地在緩沖字符串里加入字符、字符字串,或替換字符串中的字符,字符子串構(gòu)造方法:
StringBuffer()
建立一個(gè)空串的緩沖區(qū),長(zhǎng)度為16。
StringBuffer(intlength)
建立一個(gè)長(zhǎng)度為length的空串緩沖區(qū)。
StringBuffer(Stringstr)
初始化緩沖區(qū)內(nèi)容為給定的字符串str,并提供另16個(gè)字符的空間供再次分配。3、字符串
——StringBuffer:創(chuàng)建2021/6/2730除了方法length(),charAt(),getChars()以外,還有以下幾種方法。1.capacitypublicintcapacity()此方法返回字符串緩沖區(qū)的長(zhǎng)度,即總的可供分配的字符個(gè)數(shù)。3、字符串
——StringBuffer:基本方法2021/6/2731classdemoOfStringBuffer{
publicvoidmain(Stringbuf[]){
StringBufferstb=newStringBuffer("abc");System.out.println("buffer="+stb);System.out.println("length="+stb.length())
System.out.println("capacity="+stb.capacity());}}從運(yùn)行結(jié)果我們可以看到為附加處理保留了空間。注意:capacity()與length()的區(qū)別。C:\>javademoOfStringBufferbuffer=abclength=3capacity=192021/6/27322.appendpublicsynchronizedStringBufferappend
(對(duì)象類(lèi)型對(duì)象名)append方法將指定的參數(shù)對(duì)象轉(zhuǎn)化成字符串,附加在原來(lái)的字符串對(duì)象之后。3.insertpublicsynchronizedStringBufferinsert
(int插入位置,對(duì)象類(lèi)型對(duì)象名)
在指定的位置插入給出的參數(shù)對(duì)象所轉(zhuǎn)化而得的字符串。3、字符串
——StringBuffer:基本方法2021/6/27334.setChatAt()publicsynchronizedvoidsetCharAt
(intindex,charch)
用來(lái)設(shè)置指定索引index位置的字符值。5.setLengthpublicsynchronizedvoidsetLength
(intnewLength)
如果希望明確地定義字符緩沖區(qū)的長(zhǎng)度,則可以用此方法。如果newlength大于現(xiàn)在的長(zhǎng)度,串尾將補(bǔ)0,如果小于,那么newlength后的字符將丟失。3、字符串
——StringBuffer:基本方法2021/6/2734用StringBuffer修改加密解密加密算法publicStringjiami(Stringstr){StringBufferresult=newStringBuffer();for(inti=0;i<str.length();i++){//得到字符直接追加到resultresult.append((char)(str.charAt(i)+i));}returnresult.toString();}2021/6/2735與日期和時(shí)間有關(guān)的類(lèi)Java語(yǔ)言的Calendar(日歷),Date(日期),和DateFormat(日期格式)組成了Java標(biāo)準(zhǔn)的一個(gè)基本但是非常重要的部分。日期是商業(yè)邏輯計(jì)算一個(gè)關(guān)鍵的部分。所有的開(kāi)發(fā)者都應(yīng)該能夠計(jì)算未來(lái)的日期,定制日期的顯示格式,并將文本數(shù)據(jù)解析成日期對(duì)象。2021/6/2736與日期和時(shí)間有關(guān)的類(lèi)創(chuàng)建一個(gè)日期對(duì)象
讓我們看一個(gè)使用系統(tǒng)的當(dāng)前日期和時(shí)間創(chuàng)建一個(gè)日期對(duì)象并返回一個(gè)長(zhǎng)整數(shù)。這個(gè)時(shí)間通常被稱(chēng)為Java虛擬機(jī)(JVM)主機(jī)環(huán)境的系統(tǒng)時(shí)間。2021/6/2737與日期和時(shí)間有關(guān)的類(lèi)Datedate=newDate();
我們使用了Date構(gòu)造函數(shù)創(chuàng)建一個(gè)日期對(duì)象,這個(gè)構(gòu)造函數(shù)沒(méi)有接受任何參數(shù),而這個(gè)構(gòu)造函數(shù)在內(nèi)部使用了System.currentTimeMillis()方法來(lái)從系統(tǒng)獲取日期。
2021/6/2738與日期和時(shí)間有關(guān)的類(lèi)日期數(shù)據(jù)的定制格式
Date類(lèi)java.text.DateFormat與java.text.SimpleDateFormat子類(lèi)SimpleDateFormat是DateFormat的子類(lèi),DateFormat是抽象類(lèi)。2021/6/2739與日期和時(shí)間有關(guān)的類(lèi)SimpleDateFormat():用默認(rèn)的模式和默認(rèn)語(yǔ)言環(huán)境的日期格式符號(hào)構(gòu)造SimpleDateFormat。SimpleDateFormat(String
pattern):用給定的模式和默認(rèn)語(yǔ)言環(huán)境的日期格式符號(hào)構(gòu)造SimpleDateFormat。SimpleDateFormat類(lèi)常用成員方法如下:Stringformat(Date
date):將一個(gè)Date格式化為日期/時(shí)間字符串。Dateparse(String
source):從給定字符串的開(kāi)始分析文本,以生成一個(gè)日期。2021/6/2740與日期和時(shí)間有關(guān)的類(lèi)StringwriterDate=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss").format(newDate());SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEEHH:mm:ss");格式“yyyy年MM月dd日EEEHH:mm:ss”其中EEE表示“星期”2021/6/2741與日期和時(shí)間有關(guān)的類(lèi)SimpleDateFormat類(lèi)的作用是設(shè)置好某種格式:
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
將字符串轉(zhuǎn)換為日期:
Datedt=sdf.parse("2007-04-30");
將日期轉(zhuǎn)換為字符串:
Stringstr=sdf.format(dt);2021/6/2742實(shí)例public
classDateTest{
public
static
voidmain(String[]args){ Datedate=newDate();//根據(jù)當(dāng)前系統(tǒng)事件生成Date對(duì)象
SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEEHH:mm:ss"); Stringdate_str=date.toString(); Stringdate_format=sdf.format(date);//根據(jù)規(guī)定的格式格式化Date對(duì)象
System.out.println(date_str); System.out.println(date_format);}}2021/6/2743與日期和時(shí)間有關(guān)的類(lèi)Calendar日歷類(lèi)是一個(gè)抽象類(lèi),主要用于日期字段之間相互操作,設(shè)置和獲取日期數(shù)據(jù)的特定部分。Calendar類(lèi)的set()和get()方法可以用來(lái)設(shè)置和讀取日期的特定部分,比如年、月、日、分和秒等。我們可以使用Calendar.getInstance()方法獲取Calendar類(lèi)實(shí)例或調(diào)用它的子類(lèi)GregorianCalendar的構(gòu)造方法。GregorianCalendar采用格林尼治標(biāo)準(zhǔn)時(shí)間。2021/6/2744與日期和時(shí)間有關(guān)的類(lèi)GregorianCalendar類(lèi)常用構(gòu)造方法如下:(1)GregorianCalendar():在具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)內(nèi)使用當(dāng)前時(shí)間構(gòu)造一個(gè)默認(rèn)的GregorianCalendar。(2)GregorianCalendar(int
year,int
month,int
dayOfMonth):在具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)內(nèi)構(gòu)造一個(gè)帶有給定日期設(shè)置的GregorianCalendar。(3)GregorianCalendar(int
year,int
month,int
dayOfMonth,int
hourOfDay,int
minute):為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)構(gòu)造一個(gè)具有給定日期和時(shí)間設(shè)置的GregorianCalendar。(4)GregorianCalendar(int
year,int
month,int
dayOfMonth,int
hourOfDay,int
minute,int
second):為具有默認(rèn)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)構(gòu)造一個(gè)具有給定日期和時(shí)間設(shè)置的GregorianCalendar。2021/6/2745與日期和時(shí)間有關(guān)的類(lèi)
GregorianCalendar類(lèi)常用方法如下:(1)voidadd(int
field,int
amount):根據(jù)日歷規(guī)則,將指定的(有符號(hào)的)時(shí)間量添加到給定的日歷字段中。field指對(duì)哪個(gè)日期域進(jìn)行操作,如DATE。(2)DategetTime():
返回一個(gè)表示此Calendar時(shí)間值(從歷元至現(xiàn)在的毫秒偏移量)的Date對(duì)象。(3)voidset(int
field,int
value):將給定的日歷字段設(shè)為給定值。(4)voidgett(int
field,int
value):返回給定的日歷字段值。(5)voidsetTime(Date
date):使用給定的Date設(shè)置此Calendar的時(shí)間。(6)longgetTimeInMillis():
返回此Calendar的時(shí)間值,以毫秒為單位。2021/6/2746實(shí)例;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassCalendardemo{publicstaticvoidmain(String[]args){Calendarcal=newGregorianCalendar();System.out.println("當(dāng)前格林尼治時(shí)間--"+cal.getTime());System.out.print("年:"+cal.get(Calendar.YEAR));System.out.print("月:"+cal.get(Calendar.MONTH));System.out.print("日:"+cal.get(Calendar.DATE));//Calendar類(lèi)中星期日Calendar.SUNDAT是1
System.out.print("星期:"+(cal.get(Calendar.DAY_OF_WEEK)));System.out.print("小時(shí):"+cal.get(Calendar.HOUR_OF_DAY));System.out.print("分:"+cal.get(Calendar.MINUTE));System.out.println("秒:"+cal.get(Calendar.SECOND));Datedate=cal.getTime();SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEEHH:mm:ss");Stringdate_format=sdf.format(date);System.out.println("今天是:"+date_format);cal.set(Calendar.DATE,1);cal.add(Calendar.HOUR,4);System.out.println("修改后的時(shí)間為:"+cal.getTime());System.out.println("修改后的時(shí)間為:"+sdf.format(cal.getTime()));}}2021/6/2747包裝類(lèi)對(duì)于java中的基本數(shù)據(jù)類(lèi)型如long,int等等都有一個(gè)對(duì)應(yīng)的數(shù)據(jù)類(lèi)型類(lèi),將它們包裝成一個(gè)對(duì)象,并提供一些操作它們的方法.基本數(shù)據(jù)類(lèi)型longintshortbytefloatdoublecharboolen數(shù)據(jù)類(lèi)型類(lèi)LongIntegerShortByteFloatDoubleCharacterBoolen2021/6/2748包裝類(lèi)構(gòu)造方法和常用方法(以Double為例)1、Doubledou1=newDouble(“123.45”)Doubledou2=newDouble(123.45)2、publicdoubledoubleValue()字符串轉(zhuǎn)換成相應(yīng)的基本類(lèi)型數(shù)據(jù)值publicstaticdoubleparseDouble(String)從包裝類(lèi)對(duì)象中取出對(duì)應(yīng)的基本類(lèi)型數(shù)據(jù)值publicdoubledoubleValue();publicstaticDoublevalueOf(String)publicStringtoString()2021/6/2749包裝類(lèi)實(shí)例數(shù)字字符串轉(zhuǎn)換成對(duì)應(yīng)簡(jiǎn)單數(shù)據(jù)類(lèi)型;從數(shù)據(jù)類(lèi)型對(duì)象中取出對(duì)應(yīng)的簡(jiǎn)單類(lèi)型數(shù)據(jù);
JDK1.5及以后版本運(yùn)行基本類(lèi)型和包裝類(lèi)型進(jìn)行混合運(yùn)算。在JDK1.5版本之前,數(shù)學(xué)運(yùn)算表達(dá)式中操作單元必須是基本類(lèi)型,并且結(jié)果也必須是基本類(lèi)型。例如以下語(yǔ)句:doubled=123.456*3*3;//合法Doubled=newDouble(“123.456”)*newInteger(3)*3;//不合法,編譯出錯(cuò)在JDK1.5及以后版本中上面兩個(gè)語(yǔ)句均合法。2021/6/2750實(shí)例public
classCalculateTest{public
static
voidmain(String[]args){ Doubled=Double.valueOf("123.456"); Integeri=newInteger(3); Doubled2=Double.valueOf("3.3");
intii=6; System.out.println(d*i*d2-ii);}}2021/6/2751集合類(lèi)框架ArrayListVectorIteratorHashTableHashMap2021/6/2752為什么需要集合框架學(xué)生1學(xué)生20如何存儲(chǔ)每天的新聞信息?如何存儲(chǔ)課程的代碼與課程信息,能夠通過(guò)代碼方便地獲得課程信息?如果寫(xiě)程序時(shí)并不知道程序運(yùn)行時(shí)會(huì)需要多少對(duì)象,或者,需要更復(fù)雜的方式存儲(chǔ)對(duì)象——那么,可以使用Java集合框架,來(lái)解決這類(lèi)問(wèn)題一維數(shù)組代碼1……代碼N課程1……課程N(yùn)一一對(duì)應(yīng)新聞1……新聞N每天的新聞總數(shù)不確定,顯然無(wú)法再使用數(shù)組保存存儲(chǔ)一個(gè)班的學(xué)生信息,假定一個(gè)班容納20名學(xué)員2021/6/2753Java集合框架包含的內(nèi)容1接口CollectionListMap2具體類(lèi)ListArrayListVectorMap3算法Java集合框架,為我們提供了一套性能優(yōu)良、使用方便的接口和類(lèi),我們不必再重新發(fā)明輪子,只需學(xué)會(huì)如何使用它們,就可以處理實(shí)際應(yīng)用中出現(xiàn)的問(wèn)題了Java集合框架位于java.util包中Collections提供了對(duì)集合進(jìn)行排序、遍歷等多種算法實(shí)現(xiàn)采用鍵-值對(duì)的存儲(chǔ)方式,長(zhǎng)度可動(dòng)態(tài)改變采用線(xiàn)性列表的存儲(chǔ)方式,長(zhǎng)度可動(dòng)態(tài)改變SetList采用線(xiàn)性列表的存儲(chǔ)方式,長(zhǎng)度可動(dòng)態(tài)改變List了解內(nèi)容HashtableHashMap2021/6/2754List接口和ArrayList類(lèi)開(kāi)發(fā)一套小型的新聞管理系統(tǒng),要求如下:可以存儲(chǔ)各類(lèi)新聞標(biāo)題(包含ID、名稱(chēng)、創(chuàng)建者、創(chuàng)建時(shí)間)可以獲取新聞標(biāo)題的總數(shù)可以逐條打印每條新聞標(biāo)題的名稱(chēng)存儲(chǔ)方式如何選擇?元素個(gè)數(shù)不確定使用集合類(lèi)需要遍歷元素存儲(chǔ)對(duì)象如何確定?類(lèi)型:新聞標(biāo)題屬性:ID、名稱(chēng)、創(chuàng)建者、創(chuàng)建時(shí)間2021/6/2755List接口和ArrayList類(lèi)第一步,確定存儲(chǔ)方式1、ArrayList類(lèi)是List接口的一個(gè)具體實(shí)現(xiàn)類(lèi)2、ArrayList
對(duì)象實(shí)現(xiàn)了可變大小的數(shù)組3、隨機(jī)訪(fǎng)問(wèn)和遍歷元素時(shí),它提供更好的性能元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10當(dāng)元素個(gè)數(shù)增加為11個(gè)元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10元素11創(chuàng)建了一個(gè)新的數(shù)組,把原數(shù)組中元素復(fù)制進(jìn)來(lái)根據(jù)下標(biāo)位置訪(fǎng)問(wèn)元素2021/6/2756List接口和ArrayList類(lèi)第二步:確定存儲(chǔ)對(duì)象1、創(chuàng)建類(lèi)型:新聞標(biāo)題2、包含屬性:ID、名稱(chēng)、創(chuàng)建者、創(chuàng)建時(shí)間publicclassFirstLevelTitle{privateintid;//IDprivateStringtitleName;//名稱(chēng)privateStringcreater;//創(chuàng)建者privateDatecreateTime;//創(chuàng)建時(shí)間publicFirstLevelTitle(intid,StringtitleName,Stringcreater,DatecreateTime){this.id=id;this.titleName=titleName;this.creater=creater;this.createTime=createTime;}publicStringgetTitleName(){ returntitleName;}publicvoidsetTitleName(StringtitleName){ this.titleName=titleName;}}2021/6/2757List接口和ArrayList類(lèi)5-4第三步:具體實(shí)現(xiàn)1、按照順序依次添加各類(lèi)新聞標(biāo)題2、獲取新聞標(biāo)題的總數(shù)3、根據(jù)位置獲取相應(yīng)新聞標(biāo)題4、逐條打印每條新聞標(biāo)題的名稱(chēng)publicclassFirstLevelTitleDB1{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車(chē)","管理員",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","管理員",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test); System.out.println("新聞標(biāo)題數(shù)目為:"+newsTitleList.size()+"條");print(newsTitleList);}publicstaticvoidprint(ListnewsList){for(inti=0;i<newsList.size();i++){FirstLevelTitletitle=(FirstLevelTitle)newsList.get(i);System.out.println(i+1+":"+title.getTitleName());}}}123順序添加,位置從0開(kāi)始新聞標(biāo)題數(shù)目為:2條1:汽車(chē)2:高考控制臺(tái)輸出4從集合中取出后為Object類(lèi)型,需要進(jìn)行強(qiáng)制類(lèi)型轉(zhuǎn)換2021/6/2758List接口和ArrayList類(lèi)第三步:具體實(shí)現(xiàn)1、在指定的位置添加新聞標(biāo)題2、判斷是否已經(jīng)存儲(chǔ)了某條新聞標(biāo)題3、刪除指定位置處的某一新聞標(biāo)題publicclassFirstLevelTitleDB2{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車(chē)","網(wǎng)站管理員",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","網(wǎng)站管理員",newDate());FirstLevelTitlehouse=newFirstLevelTitle(3,"房產(chǎn)","網(wǎng)站管理員",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test);newsTitleList.add(2,house);if(newsTitleList.contains(test)){ System.out.println("有高考的新聞");}else{ System.out.println("沒(méi)有高考的新聞");}newsTitleList.remove(1);System.out.println("新聞標(biāo)題數(shù)目為:"+newsTitleList.size()+"條");}}123在指定的位置添加元素,后續(xù)元素依次后移有高考的新聞新聞標(biāo)題數(shù)目為:2條控制臺(tái)輸出2021/6/2759List接口中定義的常用方法,booleanadd(Objecto);,intsize();,Objectget(intindex);,voidadd(intindex,Objecto);插入,booleancontains(Objecto);,booleanremove(Objecto);2021/6/2760小結(jié)1創(chuàng)建一個(gè)類(lèi)Cat包含屬性name,在構(gòu)造方法中進(jìn)行初始化添加一個(gè)方法show(),用以打印name屬性的值創(chuàng)建一個(gè)類(lèi)CatTest,添加main方法,實(shí)現(xiàn)創(chuàng)建一個(gè)ArrayList,向其中添加幾個(gè)Cat對(duì)象遍歷該集合,并且對(duì)每個(gè)Cat對(duì)象調(diào)用show()方法2021/6/2761Collection接口中別的集合2021/6/2762Collection接口中Iterator如何遍歷Collection中的每一個(gè)元素?不論Collection的實(shí)際類(lèi)型如何,它都支持一個(gè)iterator()的方法,該方法返回一個(gè)迭代子,使用該迭代子即可逐一訪(fǎng)問(wèn)Collection中每一個(gè)元素。典型的用法如下:
Iterator
it
=
collection.iterator();
//
獲得一個(gè)迭代子
while(it.hasNext())
{
//
得到下一個(gè)元素,需要做具體的類(lèi)型轉(zhuǎn)換
Object
obj
=
it.next();
}
2021/6/2763Collection接口中Iteratorpublicvoidoutputinfo(Listlist){ Iteratorit=list.iterator(); while(it.hasNext()){FirstLevelTitleft=(FirstLevelTitle)it.next(); ft.getTitleName()); }}2021/6/2764那Vector和ArrayList有何區(qū)別呢?Vector非常類(lèi)似ArrayList,但是Vector是同步的.大家不必過(guò)多的去研究它們的區(qū)別用Vector代替ArrayList實(shí)現(xiàn)前例2021/6/2765Map接口和HashMap類(lèi)學(xué)生應(yīng)聘至外企工作,每個(gè)學(xué)生都會(huì)有一個(gè)英文名稱(chēng),對(duì)應(yīng)該學(xué)員對(duì)象
Jack淮安信息畢業(yè)的李明Rose南京信息畢業(yè)的劉麗現(xiàn)在希望通過(guò)英文名稱(chēng),獲得該學(xué)員對(duì)象的詳細(xì)信息,如何實(shí)現(xiàn)?存儲(chǔ)方式如何選擇?元素個(gè)數(shù)不確定使用集合類(lèi)通過(guò)key(英文名稱(chēng))獲得value(學(xué)員對(duì)象)存儲(chǔ)對(duì)象如何確定?類(lèi)型:學(xué)生屬性:學(xué)校、姓名2021/6/2766Map接口和HashMap類(lèi)4-2第一步,確定存儲(chǔ)方式1、Map接口用于維護(hù)“鍵-值對(duì)”的關(guān)聯(lián)性,可以通過(guò)鍵查找值2、HashMap是Map接口的一個(gè)具體實(shí)現(xiàn)類(lèi)2021/6/2767Map接口和HashMap類(lèi)第二步:確定存儲(chǔ)對(duì)象1、創(chuàng)建類(lèi)型:Accp學(xué)員2、包含屬性:中心名稱(chēng)、姓名publicclassAccpStudent{privateStringname;//學(xué)生姓名privateStringschool;//學(xué)校名稱(chēng)publicAccpStudent(Stringname,Stringschool){=name;this.school=school;}publicStringtoString(){ returnschool+"畢業(yè)的"+name;}}重寫(xiě)Object的toString()方法,用于輸出調(diào)試和描述信息2021/6/2768Map接口和HashMap類(lèi)第三步:具體實(shí)現(xiàn)1、把英文名稱(chēng)與學(xué)員對(duì)象按照“鍵-值對(duì)”的方式存儲(chǔ)在HashMap中2、分別打印鍵集、值集、以及鍵-值對(duì)集合3、判斷是否存在某個(gè)鍵,如果是,則根據(jù)鍵獲取相應(yīng)的值4、根據(jù)鍵、刪除某條記錄publicclassMapTest{publicstaticvoidmain(String[]args){AccpStudentstudent1=newAccpStudent(“李明”,“淮安信息");AccpStudentstudent2=newAccpStudent(“劉麗”,“南京信息");Mapstudents=newHashMap();students.put("Jack",student1);students.put("Rose",student2);System.out.println("鍵集:"+students.keySet());System.out.println("值集:"+students.values());System.out.println("鍵-值對(duì)集合:"+students);Stringkey="Jack";if(students.containsKey(key))System.out.println(students.get(key));students.remove(key);System.out.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年教育培訓(xùn)項(xiàng)目投資與合作合同
- 設(shè)立分公司技術(shù)試驗(yàn)協(xié)議
- 多元化中學(xué)門(mén)衛(wèi)招聘協(xié)議
- 留學(xué)生合同范本
- 草場(chǎng)租賃合同:戶(hù)外健身中心
- 鄉(xiāng)鎮(zhèn)公務(wù)員聘用合同
- 旅游項(xiàng)目融資抵押借款協(xié)議書(shū)
- 電力施工設(shè)備租賃合同
- 駕校訓(xùn)練場(chǎng)駕駛培訓(xùn)租賃合同
- 醫(yī)院工程板房施工協(xié)議
- DB42T 1144-2016燃?xì)庥貌讳P鋼波紋軟管安裝及驗(yàn)收規(guī)范
- 二級(jí)醫(yī)院規(guī)章制度匯編
- 建筑物拆除工程監(jiān)理實(shí)施細(xì)則
- 2023-2024學(xué)年安徽省合肥市小學(xué)數(shù)學(xué)五年級(jí)上冊(cè)期末自測(cè)題
- GB/T 702-2017熱軋鋼棒尺寸、外形、重量及允許偏差
- 四年級(jí)上冊(cè)英語(yǔ)試題-Unit 12 Peter can jump high 湘少版(含答案)
- 信息系統(tǒng)運(yùn)行維護(hù)服務(wù)與方案(IT運(yùn)維服務(wù)與方案)
- 培訓(xùn)宏業(yè)系統(tǒng)門(mén)店簡(jiǎn)易操作手冊(cè)
- 《故都的秋》《荷塘月色》聯(lián)讀課件15張-統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- 初中籃球教學(xué)案例八年級(jí)體質(zhì)課案-【教學(xué)參考】
- 毽球知識(shí)考題
評(píng)論
0/150
提交評(píng)論