版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
java類庫和常用類簡介Java語言基礎(chǔ)類庫String類和StringBuffer類常用工具類庫2021/6/271類庫簡介java.lang它是由編譯器自動引入的,包括:Object類,數(shù)據(jù)包裝類,數(shù)學類,異常處理類,線程類,字符串處理類,系統(tǒng)及運行類,類操作類等;java.applet用于創(chuàng)建小程序;java.awt用于創(chuàng)建圖形用戶界面;java.io輸入輸出流網(wǎng)絡(luò)包,用于網(wǎng)絡(luò)通訊java.util實用程序包,提供許多不同功能的類,如日期時間類,矢量類,數(shù)據(jù)結(jié)構(gòu)類等2021/6/272Java中的Math類Math類
數(shù)學類包含了許多數(shù)學函數(shù),如sin、cos、exp、abs等。Math類是一個工具類,它在解決與數(shù)學有關(guān)的一些問題是有著非常重要的作用。
這個類有兩個靜態(tài)屬性:E和PI。E代表數(shù)學中的e2.7182818,而PI代表派pi3.1415926。引用時,用法如:Math.E和Math.Pi2021/6/273Java中的Math類這個類的方法有:
publicstaticintabs(inta)
publicstaticlongabs(longa)
publicstaticfloatabs(floata)
publicstaticdoubleabs(doublea)
abs方法用來求絕對值。
2021/6/274Java中的Math類publicstaticnativedoublesin(doublea)
sin求正弦函數(shù)。
publicstaticnativedoubletan(doublea)
tan求正切函數(shù)。
atan求反正切函數(shù)。publicstaticnativedoublecos(doublea)
cos求余弦函數(shù)。……2021/6/275Java中的Math類publicstaticnativedoubleceil(doublea)
ceil返回最小的大于a的整數(shù)。(天花板)publicstaticnativedoubleexp(doublea)
exp求e的a次冪。publicstaticnativedoublefloor(doublea)
floor返回最大的小于a的整數(shù)。publicstaticnativedoublelog(doublea)
log返回lna。2021/6/276Java中的Math類publicstaticnativedoublepow(doublea,doubleb)
pow求a的b次冪。publicstaticnativedoublesqrt(doublea)
sqrt求a的開平方。publicstaticsynchronizeddoublerandom()
返回0到1之間的隨機數(shù)。publicstaticround(doubled)publicstaticround(floatf)
取整,四舍五入2021/6/277Java中的Math類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隨機數(shù)類java.util.Random
Random()
創(chuàng)建一個新的隨機數(shù)生成器。Random(long
seed)
使用單個long種子創(chuàng)建一個新的隨機數(shù)生成器。2021/6/279隨機數(shù)類java.util.RandomnextDouble()
返回下一個偽隨機數(shù),它是取自此隨機數(shù)生成器序列的、在0.0和1.0之間均勻分布的double值。nextFloat()
返回下一個偽隨機數(shù),它是取自此隨機數(shù)生成器序列的、在0.0和1.0之間均勻分布的float值2021/6/2710隨機數(shù)類java.util.RandomnextInt()
返回下一個偽隨機數(shù),它是此隨機數(shù)生成器的序列中均勻分布的int值。nextInt(int
n)
返回一個偽隨機數(shù),它是取自此隨機數(shù)生成器序列的、在0(包括)和指定值(不包括)之間均勻分布的int值。2021/6/2711String類和StringBuffer類字符串是字符的序列,它是組織字符的基本數(shù)據(jù)結(jié)構(gòu),從某種程度上來說有些類似于字符的數(shù)組。在Java中,字符串被當作對象來處理。程序中需要用到的字符串可以分為兩大類,一類是創(chuàng)建之后不會再做修改和變動的字符串常量;另一類是創(chuàng)建之后允許再做更改和變化的字符串變量。對于字符串常量,由于程序中經(jīng)常需要對它做比較,搜索之類的操作,所以通常把它放在一個具有一定名稱的對象之中,由程序?qū)υ搶ο笸瓿缮鲜霾僮?。在Java中,存放字符串常量的對象用String類,對于字符串變量,由于程序中經(jīng)常需要對它做添加,插入,修改等操作,一般存放在StringBuffer類的對象中。2021/6/2712字符串
——String字符串常量使用雙引號括住的一串字符,比如:
"Helloworld!"Java編譯器自動為每一個字符串常量生成一個String類的實例,因此可以用字符串常量直接初始化一個String對象,如:
Strings="Helloworld!";2021/6/2713要創(chuàng)建類String的一個對象并進行初始化,需要調(diào)用類String的構(gòu)造方法。類String中提供了下面的一些構(gòu)造方法:String():無參數(shù)的缺省的構(gòu)造方法用來創(chuàng)建一個空串。
Strings=newString();
String(Stringvalue):利用已經(jīng)存在的字符串常量創(chuàng)建一個新的String對象,該對象的內(nèi)容與給出的字符串常量一致。
Strings=newString(“hello”);String(charvalue[]):通過給構(gòu)造方法傳遞一個字符數(shù)組可以創(chuàng)建一個非空串。
charchars[]={‘a(chǎn)’,‘b’,‘c’};
Strings=newString(chars);
3、字符串
——String:創(chuàng)建2021/6/2714String(char[],intstartIndex,intnumChars):這種方法用來創(chuàng)建一個非空串,并且指明所創(chuàng)建的字符串在字符數(shù)組中的起始地址以及所包含的字符個數(shù)。charchars[]={'a','b','c','d','e','f'};Strings=newString(chars,2,3);該方法生成的串s為“cde”。(注意數(shù)組的下標從0開始)3、字符串
——String:創(chuàng)建2021/6/2715String(bytemybyte[],bytehibyte):因為在Internet上,格式采用八位的ASCII碼,所以Java的類String提供了從byte型數(shù)組進行初始化的構(gòu)造方法。其中hibyte指明各字符的高位字節(jié),對于通常所用的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)類似,只是初始化的數(shù)組類型不同。
bytemybyte[]={80,81,82,83,84,85};
Strings=newString(mybyte,0,2,3);該方法構(gòu)造的字符串s是“RST”。String(StringBufferbuffer):這個構(gòu)造函數(shù)利用一個已經(jīng)存在的StringBuffer對象為新建的String對象初始化。3、字符串
——String:創(chuàng)建2021/6/2717
1.lengthpublicintlength()
此方法返回字符串的字符個數(shù),如:
Strings="abc"; System.out.println(s.length());
則將顯示字符個數(shù)為3。3、字符串
——String:基本方法2021/6/27182.charAtpubliccharcharAt(intindex)
該方法返回字符串中index位置上的字符,其中index值的范圍是0~length-1。3.getChars
如果要從字符串中提取一個以上的字符,則可以用此方法:publicvoidgetchars(intsrcbegin,intend,charbuf[],intdstbegin)
其中,srcbegin為要提取的第一個字符在源串中的位置,
end為要提取的最后一個字符在源串中的位置,字符數(shù)組buf[]存放目的字符串,dstbegin為提取的字符串在目的串中的起始位置。3、字符串
——String:基本方法2021/6/27194.getbytespublicvoidgetbytes(intsrcbegin,intend,bytebyt[],intdstbegin)類似于上一個方法,只是串中的字符均用8位表示,參數(shù)及用法同上。5.indexOf和lastIndexOf
為了在給定的字符串中檢索特定的字符或子串,類String提供了上面兩種方法,并通過方法重寫更方便的處理這類問題。這兩種方法中,如果查找成功,則返回匹配成功的字符的位置,如果沒有查找到,則都返回-1。
intindexOf(intch)intlastIndexOf(intch)
返回字符ch在字符串中出現(xiàn)的第一個和最后一個位置。3、字符串
——String:基本方法2021/6/2720 intindexOf(Stringstr) intlastindexOf(Stringstr)
返回子串str中第一個字符在字符串中出現(xiàn)的始末位置。
intindexOf(intch,intfromIndex)) intlastIndexOf(intch,intfromIndex))
返回字符ch在字符串中位置fromIndex以后出現(xiàn)的始末位置。intindexOf(Stringstr,intfromIndex) intlastIndexOf(Stringstr,intfromIndex)
返回子串str中的第一個字符在字符串中位置fromIndex
以后出現(xiàn)的始末位置。3、字符串
——String:基本方法2021/6/27216.+ 在Java中,運算符“+”可以用來實現(xiàn)字符串的連接,如:
Strings=“Heis”+
age
+“yearsold.”
假設(shè)整數(shù)型變量age的值為15,那么,s的值為
“Heis15yearsOld”。7.compareTo publicintcompareTo(Stringstr)
該方法按字典次序比較兩個字符串的大小,如果源串較小,則返回一個小于0的值,如相等則返回0,否則返回一個大于0的值。3、字符串
——String:基本方法2021/6/27228.regionMatches booleanregionMatches
(inttoffset,Stringother,intooffset,intlen)
booleanregionMatches
(booleanignoreCase,inttoffset,Stringother, intooffset,intlen)上述兩個方法都是用來進行模式匹配的,匹配成功則返回true,否則返回false。其中,toffset和ooffset分別指明當前字符串和參數(shù)字符串中所要比較的子串的起始索引位置,len指明比較的長度,而ignoreCase指明比較時是否區(qū)分大小寫。對于第一種方法,比較是區(qū)分大小寫的。Strings1=“tsinghua”Strings2=“itisTsingHua”;s1.regionMatches(0,s2,6,7);3、字符串
——String:基本方法2021/6/27239.equals和equalsIgnoreCase publicbooleanequals(objectstr) publicbooleanequalsIgnoreCase(objectstr) 判斷兩個字符串是否相等,則可以用此方法。相等則返回true,不等則返回false,兩種方法的區(qū)別在于equalsIgnoreCase不區(qū)分字母大小寫,而equals則須區(qū)分。10.其他方法
publicStringconcat(Stringstr);
將當前字符串對象與給定的字符串str連接起來。3、字符串
——String:基本方法2021/6/2724publicStringreplace(charoldChar,charnewChar)將串中出現(xiàn)的特定字符用新的字符代替。publicStringsubstring(intbeginIndex)publicStringsubstring(intbeginIndex,intendIndex)用來得到字符串中指定范圍內(nèi)的子串。publicStringtoLowerCase()把串中的所有字符轉(zhuǎn)換成小寫publicStringtoUpperCase()把串中的所有字符轉(zhuǎn)換成大寫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(“-”);//以“-”為標志將字符串拆分
//循環(huán)打印字符數(shù)組元素
for(inti=0;i<str_split.length;i++){ System.out.println("str_split["+i+"]="+str_split[i]);}}}2021/6/2729
緩沖字符串類(StringBuffer)處理的是長度和內(nèi)容可變的字符串,使用StringBuffer類可以方便地在緩沖字符串里加入字符、字符字串,或替換字符串中的字符,字符子串構(gòu)造方法:
StringBuffer()
建立一個空串的緩沖區(qū),長度為16。
StringBuffer(intlength)
建立一個長度為length的空串緩沖區(qū)。
StringBuffer(Stringstr)
初始化緩沖區(qū)內(nèi)容為給定的字符串str,并提供另16個字符的空間供再次分配。3、字符串
——StringBuffer:創(chuàng)建2021/6/2730除了方法length(),charAt(),getChars()以外,還有以下幾種方法。1.capacitypublicintcapacity()此方法返回字符串緩沖區(qū)的長度,即總的可供分配的字符個數(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());}}從運行結(jié)果我們可以看到為附加處理保留了空間。注意:capacity()與length()的區(qū)別。C:\>javademoOfStringBufferbuffer=abclength=3capacity=192021/6/27322.appendpublicsynchronizedStringBufferappend
(對象類型對象名)append方法將指定的參數(shù)對象轉(zhuǎn)化成字符串,附加在原來的字符串對象之后。3.insertpublicsynchronizedStringBufferinsert
(int插入位置,對象類型對象名)
在指定的位置插入給出的參數(shù)對象所轉(zhuǎn)化而得的字符串。3、字符串
——StringBuffer:基本方法2021/6/27334.setChatAt()publicsynchronizedvoidsetCharAt
(intindex,charch)
用來設(shè)置指定索引index位置的字符值。5.setLengthpublicsynchronizedvoidsetLength
(intnewLength)
如果希望明確地定義字符緩沖區(qū)的長度,則可以用此方法。如果newlength大于現(xiàn)在的長度,串尾將補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與日期和時間有關(guān)的類Java語言的Calendar(日歷),Date(日期),和DateFormat(日期格式)組成了Java標準的一個基本但是非常重要的部分。日期是商業(yè)邏輯計算一個關(guān)鍵的部分。所有的開發(fā)者都應(yīng)該能夠計算未來的日期,定制日期的顯示格式,并將文本數(shù)據(jù)解析成日期對象。2021/6/2736與日期和時間有關(guān)的類創(chuàng)建一個日期對象
讓我們看一個使用系統(tǒng)的當前日期和時間創(chuàng)建一個日期對象并返回一個長整數(shù)。這個時間通常被稱為Java虛擬機(JVM)主機環(huán)境的系統(tǒng)時間。2021/6/2737與日期和時間有關(guān)的類Datedate=newDate();
我們使用了Date構(gòu)造函數(shù)創(chuàng)建一個日期對象,這個構(gòu)造函數(shù)沒有接受任何參數(shù),而這個構(gòu)造函數(shù)在內(nèi)部使用了System.currentTimeMillis()方法來從系統(tǒng)獲取日期。
2021/6/2738與日期和時間有關(guān)的類日期數(shù)據(jù)的定制格式
Date類java.text.DateFormat與java.text.SimpleDateFormat子類SimpleDateFormat是DateFormat的子類,DateFormat是抽象類。2021/6/2739與日期和時間有關(guān)的類SimpleDateFormat():用默認的模式和默認語言環(huán)境的日期格式符號構(gòu)造SimpleDateFormat。SimpleDateFormat(String
pattern):用給定的模式和默認語言環(huán)境的日期格式符號構(gòu)造SimpleDateFormat。SimpleDateFormat類常用成員方法如下:Stringformat(Date
date):將一個Date格式化為日期/時間字符串。Dateparse(String
source):從給定字符串的開始分析文本,以生成一個日期。2021/6/2740與日期和時間有關(guān)的類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與日期和時間有關(guān)的類SimpleDateFormat類的作用是設(shè)置好某種格式:
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
將字符串轉(zhuǎn)換為日期:
Datedt=sdf.parse("2007-04-30");
將日期轉(zhuǎn)換為字符串:
Stringstr=sdf.format(dt);2021/6/2742實例public
classDateTest{
public
static
voidmain(String[]args){ Datedate=newDate();//根據(jù)當前系統(tǒng)事件生成Date對象
SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日EEEHH:mm:ss"); Stringdate_str=date.toString(); Stringdate_format=sdf.format(date);//根據(jù)規(guī)定的格式格式化Date對象
System.out.println(date_str); System.out.println(date_format);}}2021/6/2743與日期和時間有關(guān)的類Calendar日歷類是一個抽象類,主要用于日期字段之間相互操作,設(shè)置和獲取日期數(shù)據(jù)的特定部分。Calendar類的set()和get()方法可以用來設(shè)置和讀取日期的特定部分,比如年、月、日、分和秒等。我們可以使用Calendar.getInstance()方法獲取Calendar類實例或調(diào)用它的子類GregorianCalendar的構(gòu)造方法。GregorianCalendar采用格林尼治標準時間。2021/6/2744與日期和時間有關(guān)的類GregorianCalendar類常用構(gòu)造方法如下:(1)GregorianCalendar():在具有默認語言環(huán)境的默認時區(qū)內(nèi)使用當前時間構(gòu)造一個默認的GregorianCalendar。(2)GregorianCalendar(int
year,int
month,int
dayOfMonth):在具有默認語言環(huán)境的默認時區(qū)內(nèi)構(gòu)造一個帶有給定日期設(shè)置的GregorianCalendar。(3)GregorianCalendar(int
year,int
month,int
dayOfMonth,int
hourOfDay,int
minute):為具有默認語言環(huán)境的默認時區(qū)構(gòu)造一個具有給定日期和時間設(shè)置的GregorianCalendar。(4)GregorianCalendar(int
year,int
month,int
dayOfMonth,int
hourOfDay,int
minute,int
second):為具有默認語言環(huán)境的默認時區(qū)構(gòu)造一個具有給定日期和時間設(shè)置的GregorianCalendar。2021/6/2745與日期和時間有關(guān)的類
GregorianCalendar類常用方法如下:(1)voidadd(int
field,int
amount):根據(jù)日歷規(guī)則,將指定的(有符號的)時間量添加到給定的日歷字段中。field指對哪個日期域進行操作,如DATE。(2)DategetTime():
返回一個表示此Calendar時間值(從歷元至現(xiàn)在的毫秒偏移量)的Date對象。(3)voidset(int
field,int
value):將給定的日歷字段設(shè)為給定值。(4)voidgett(int
field,int
value):返回給定的日歷字段值。(5)voidsetTime(Date
date):使用給定的Date設(shè)置此Calendar的時間。(6)longgetTimeInMillis():
返回此Calendar的時間值,以毫秒為單位。2021/6/2746實例;importjava.util.Calendar;importjava.util.GregorianCalendar;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassCalendardemo{publicstaticvoidmain(String[]args){Calendarcal=newGregorianCalendar();System.out.println("當前格林尼治時間--"+cal.getTime());System.out.print("年:"+cal.get(Calendar.YEAR));System.out.print("月:"+cal.get(Calendar.MONTH));System.out.print("日:"+cal.get(Calendar.DATE));//Calendar類中星期日Calendar.SUNDAT是1
System.out.print("星期:"+(cal.get(Calendar.DAY_OF_WEEK)));System.out.print("小時:"+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("修改后的時間為:"+cal.getTime());System.out.println("修改后的時間為:"+sdf.format(cal.getTime()));}}2021/6/2747包裝類對于java中的基本數(shù)據(jù)類型如long,int等等都有一個對應(yīng)的數(shù)據(jù)類型類,將它們包裝成一個對象,并提供一些操作它們的方法.基本數(shù)據(jù)類型longintshortbytefloatdoublecharboolen數(shù)據(jù)類型類LongIntegerShortByteFloatDoubleCharacterBoolen2021/6/2748包裝類構(gòu)造方法和常用方法(以Double為例)1、Doubledou1=newDouble(“123.45”)Doubledou2=newDouble(123.45)2、publicdoubledoubleValue()字符串轉(zhuǎn)換成相應(yīng)的基本類型數(shù)據(jù)值publicstaticdoubleparseDouble(String)從包裝類對象中取出對應(yīng)的基本類型數(shù)據(jù)值publicdoubledoubleValue();publicstaticDoublevalueOf(String)publicStringtoString()2021/6/2749包裝類實例數(shù)字字符串轉(zhuǎn)換成對應(yīng)簡單數(shù)據(jù)類型;從數(shù)據(jù)類型對象中取出對應(yīng)的簡單類型數(shù)據(jù);
JDK1.5及以后版本運行基本類型和包裝類型進行混合運算。在JDK1.5版本之前,數(shù)學運算表達式中操作單元必須是基本類型,并且結(jié)果也必須是基本類型。例如以下語句:doubled=123.456*3*3;//合法Doubled=newDouble(“123.456”)*newInteger(3)*3;//不合法,編譯出錯在JDK1.5及以后版本中上面兩個語句均合法。2021/6/2750實例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集合類框架ArrayListVectorIteratorHashTableHashMap2021/6/2752為什么需要集合框架學生1學生20如何存儲每天的新聞信息?如何存儲課程的代碼與課程信息,能夠通過代碼方便地獲得課程信息?如果寫程序時并不知道程序運行時會需要多少對象,或者,需要更復(fù)雜的方式存儲對象——那么,可以使用Java集合框架,來解決這類問題一維數(shù)組代碼1……代碼N課程1……課程N一一對應(yīng)新聞1……新聞N每天的新聞總數(shù)不確定,顯然無法再使用數(shù)組保存存儲一個班的學生信息,假定一個班容納20名學員2021/6/2753Java集合框架包含的內(nèi)容1接口CollectionListMap2具體類ListArrayListVectorMap3算法Java集合框架,為我們提供了一套性能優(yōu)良、使用方便的接口和類,我們不必再重新發(fā)明輪子,只需學會如何使用它們,就可以處理實際應(yīng)用中出現(xiàn)的問題了Java集合框架位于java.util包中Collections提供了對集合進行排序、遍歷等多種算法實現(xiàn)采用鍵-值對的存儲方式,長度可動態(tài)改變采用線性列表的存儲方式,長度可動態(tài)改變SetList采用線性列表的存儲方式,長度可動態(tài)改變List了解內(nèi)容HashtableHashMap2021/6/2754List接口和ArrayList類開發(fā)一套小型的新聞管理系統(tǒng),要求如下:可以存儲各類新聞標題(包含ID、名稱、創(chuàng)建者、創(chuàng)建時間)可以獲取新聞標題的總數(shù)可以逐條打印每條新聞標題的名稱存儲方式如何選擇?元素個數(shù)不確定使用集合類需要遍歷元素存儲對象如何確定?類型:新聞標題屬性:ID、名稱、創(chuàng)建者、創(chuàng)建時間2021/6/2755List接口和ArrayList類第一步,確定存儲方式1、ArrayList類是List接口的一個具體實現(xiàn)類2、ArrayList
對象實現(xiàn)了可變大小的數(shù)組3、隨機訪問和遍歷元素時,它提供更好的性能元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10當元素個數(shù)增加為11個元素1元素2元素3元素4元素5元素6元素7元素8元素9元素10元素11創(chuàng)建了一個新的數(shù)組,把原數(shù)組中元素復(fù)制進來根據(jù)下標位置訪問元素2021/6/2756List接口和ArrayList類第二步:確定存儲對象1、創(chuàng)建類型:新聞標題2、包含屬性:ID、名稱、創(chuàng)建者、創(chuàng)建時間publicclassFirstLevelTitle{privateintid;//IDprivateStringtitleName;//名稱privateStringcreater;//創(chuàng)建者privateDatecreateTime;//創(chuàng)建時間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類5-4第三步:具體實現(xiàn)1、按照順序依次添加各類新聞標題2、獲取新聞標題的總數(shù)3、根據(jù)位置獲取相應(yīng)新聞標題4、逐條打印每條新聞標題的名稱publicclassFirstLevelTitleDB1{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車","管理員",newDate());FirstLevelTitletest=newFirstLevelTitle(2,"高考","管理員",newDate());ListnewsTitleList=newArrayList();newsTitleList.add(car);newsTitleList.add(test); System.out.println("新聞標題數(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開始新聞標題數(shù)目為:2條1:汽車2:高考控制臺輸出4從集合中取出后為Object類型,需要進行強制類型轉(zhuǎn)換2021/6/2758List接口和ArrayList類第三步:具體實現(xiàn)1、在指定的位置添加新聞標題2、判斷是否已經(jīng)存儲了某條新聞標題3、刪除指定位置處的某一新聞標題publicclassFirstLevelTitleDB2{publicstaticvoidmain(String[]args){FirstLevelTitlecar=newFirstLevelTitle(1,"汽車","網(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("沒有高考的新聞");}newsTitleList.remove(1);System.out.println("新聞標題數(shù)目為:"+newsTitleList.size()+"條");}}123在指定的位置添加元素,后續(xù)元素依次后移有高考的新聞新聞標題數(shù)目為:2條控制臺輸出2021/6/2759List接口中定義的常用方法,booleanadd(Objecto);,intsize();,Objectget(intindex);,voidadd(intindex,Objecto);插入,booleancontains(Objecto);,booleanremove(Objecto);2021/6/2760小結(jié)1創(chuàng)建一個類Cat包含屬性name,在構(gòu)造方法中進行初始化添加一個方法show(),用以打印name屬性的值創(chuàng)建一個類CatTest,添加main方法,實現(xiàn)創(chuàng)建一個ArrayList,向其中添加幾個Cat對象遍歷該集合,并且對每個Cat對象調(diào)用show()方法2021/6/2761Collection接口中別的集合2021/6/2762Collection接口中Iterator如何遍歷Collection中的每一個元素?不論Collection的實際類型如何,它都支持一個iterator()的方法,該方法返回一個迭代子,使用該迭代子即可逐一訪問Collection中每一個元素。典型的用法如下:
Iterator
it
=
collection.iterator();
//
獲得一個迭代子
while(it.hasNext())
{
//
得到下一個元素,需要做具體的類型轉(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非常類似ArrayList,但是Vector是同步的.大家不必過多的去研究它們的區(qū)別用Vector代替ArrayList實現(xiàn)前例2021/6/2765Map接口和HashMap類學生應(yīng)聘至外企工作,每個學生都會有一個英文名稱,對應(yīng)該學員對象
Jack淮安信息畢業(yè)的李明Rose南京信息畢業(yè)的劉麗現(xiàn)在希望通過英文名稱,獲得該學員對象的詳細信息,如何實現(xiàn)?存儲方式如何選擇?元素個數(shù)不確定使用集合類通過key(英文名稱)獲得value(學員對象)存儲對象如何確定?類型:學生屬性:學校、姓名2021/6/2766Map接口和HashMap類4-2第一步,確定存儲方式1、Map接口用于維護“鍵-值對”的關(guān)聯(lián)性,可以通過鍵查找值2、HashMap是Map接口的一個具體實現(xiàn)類2021/6/2767Map接口和HashMap類第二步:確定存儲對象1、創(chuàng)建類型:Accp學員2、包含屬性:中心名稱、姓名publicclassAccpStudent{privateStringname;//學生姓名privateStringschool;//學校名稱publicAccpStudent(Stringname,Stringschool){=name;this.school=school;}publicStringtoString(){ returnschool+"畢業(yè)的"+name;}}重寫Object的toString()方法,用于輸出調(diào)試和描述信息2021/6/2768Map接口和HashMap類第三步:具體實現(xiàn)1、把英文名稱與學員對象按照“鍵-值對”的方式存儲在HashMap中2、分別打印鍵集、值集、以及鍵-值對集合3、判斷是否存在某個鍵,如果是,則根據(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("鍵-值對集合:"+students);Stringkey="Jack";if(students.containsKey(key))System.out.println(students.get(key));students.remove(key);System.out.
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度返聘前員工兼職合作合同
- ps2鍵盤控制器技術(shù)規(guī)范
- 高中生的入團申請書
- 銀企 開幕致詞
- 2025合同管理軟件需求分析
- 2025廣東省室內(nèi)環(huán)境質(zhì)量保證合同的范本
- 超市服務(wù)員的職業(yè)展望前景
- 2025建設(shè)工程征用土地合同樣本2
- 2025模板廈門人防專業(yè)分包合同(總價文本)
- 2025服裝類標準長期供貨合同
- 常用靜脈藥物溶媒的選擇
- 當代西方文學理論知到智慧樹章節(jié)測試課后答案2024年秋武漢科技大學
- 2024年預(yù)制混凝土制品購銷協(xié)議3篇
- 2024-2030年中國高端私人會所市場競爭格局及投資經(jīng)營管理分析報告
- GA/T 1003-2024銀行自助服務(wù)亭技術(shù)規(guī)范
- 《消防設(shè)備操作使用》培訓
- 新交際英語(2024)一年級上冊Unit 1~6全冊教案
- 2024年度跨境電商平臺運營與孵化合同
- 2024年電動汽車充電消費者研究報告-2024-11-新能源
- 湖北省黃岡高級中學2025屆物理高一第一學期期末考試試題含解析
- 上海市徐匯中學2025屆物理高一第一學期期末學業(yè)水平測試試題含解析
評論
0/150
提交評論