資源描述:
《《對象的集合》ppt課件》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、1第八章對象的集合2主要內(nèi)容1、對象數(shù)組2、集合3、list接口4、Set,SortedSet接口5、Map,SortedMap接口6、迭代器(Iterator)參考李發(fā)致教材第七章,鄭莉教材第七章,ThinkInJava第11章31、對象數(shù)組數(shù)組:在Java提供的存儲及隨機訪問對象序列的各種方法中,數(shù)組是效率最高的一種,但數(shù)組的大小是固定的,只能用來表達一組同類型數(shù)據(jù),在生存期內(nèi)大小不可變。對象數(shù)組數(shù)組元素是類的對象所有元素具有相同的類型每個元素都是一個對象的引用41.1對象數(shù)組的初始化靜態(tài)初始化:在聲明和定義數(shù)組的同時對數(shù)組元素進行初始化,例如:BankAccount[]ac
2、counts={newBankAccount(“Zhang",100.00),newBankAccount(“Li",2380.00),newBankAccount(“Wang",500.00),newBankAccount(“Liu",175.56),newBankAccount(“Ma",924.02)};5動態(tài)初始化:使用運算符new,需要經(jīng)過兩步:首先給數(shù)組分配空間typearrayName[]=newtype[arraySize];然后給每一個數(shù)組元素分配空間arrayName[0]=newtype(paramList);…arrayName[arraySize-1]=
3、newtype(paramList);61.2數(shù)組的操作——java.util.Arrays在java.util包中的Arrays類提供了一些操作數(shù)組的方法intbinarySearch(typea[],typekey)對數(shù)組進行二分法查找如果key存在,則返回它在數(shù)組a中的位置如果不存在,則返回它的“-(插入位置-1)”voidfill(typea[],typeval)給數(shù)組全部或某段數(shù)據(jù)填充成一個特殊的值7booleanequals(typea[],typea2[])兩個數(shù)組大小相同,并且每一個元素相等兩個null數(shù)組是相等的voidsort(typea[])voidsort
4、(typea[],intfromIndx,inttoIndex)voidsort(typea[],Comparator?c)voidsort(typea[],intfromIndx,inttoIndex,Comparator?c)詳細用法參看JavaAPI82、集合(Collection)Java中的數(shù)組只能保存固定數(shù)目的元素,且必須把所有需要的內(nèi)存單元一次性的申請出來,而不能先創(chuàng)建數(shù)組再追加數(shù)組元素數(shù)量。所以在對象數(shù)量不明確的情況下,類型多樣化的情況下,需要更復雜的方法來管理對象。92.1Java集合框架(CollectionsFramework)集合計算機科學中有20多個標準
5、的數(shù)據(jù)結(jié)構(gòu),如鏈表,二叉樹,棧和hash表等。Java直接以類庫的形式提供了其中的許多數(shù)據(jù)結(jié)構(gòu),這些數(shù)據(jù)結(jié)構(gòu)可以存儲對象的集合,并管理對象。數(shù)據(jù)結(jié)構(gòu)和類庫通稱為Java的集合框架(JavaCollectionsFramework)。10集合框架提供了一個通用的接口——java.util.Collection,其中給出了插入,刪除等操作一系列方法聲明。Java集合框架中有6種基本的數(shù)據(jù)結(jié)構(gòu)。11List按照一定次序排列的對象集,對象之間有次序關系,可以包含重復的對象。Set無次序的對象集,但這些對象都是唯一的,不重復。SortedSet按照升序排列元素的對象集。QueueJDK1.
6、5引入的新特性,以儲存處理之前需要暫存的數(shù)據(jù)元素,以先進先出(FirstInFirstout,FIFO)的方式處理。為線程編程提供幫助。以上四種均實現(xiàn)了Collection接口。2.1.1集合框架中的6種基本數(shù)據(jù)結(jié)構(gòu)12Mapmap沒有實現(xiàn)Collection接口,用于存儲一群成對的對象,這些對象各自保持著“鍵-值”(key-value)對應關系。即一個是鍵(如人名),另一個是與鍵對應的值(如電話號碼)。SortedMap按鍵的升序排列的map。程序員首先應該從list,set,queue,map中做出選擇,然后再根據(jù)性能和其他必要的特性,選用其中的具體類。13結(jié)構(gòu)示意圖adba
7、c列表list0123…nabcde集合setacbdv23v16v9v10映射map142.1.2集合框架層次——collection接口類層次如圖,主要包括5個接口、5個抽象類及6個具體類CollectionAbstractCollectionVectorArrayListStackListSetSortedSetAbstractSetAbstractListAbstractSequentialListHashSetTreeSetLinkedListQueueAbstract