收藏 分销(赏)

Collections集合物件.ppt

上传人:pc****0 文档编号:12555825 上传时间:2025-10-30 格式:PPT 页数:51 大小:499.50KB 下载积分:10 金币
下载 相关 举报
Collections集合物件.ppt_第1页
第1页 / 共51页
Collections集合物件.ppt_第2页
第2页 / 共51页


点击查看更多>>
资源描述
按一下以編輯母片標題樣式,*,按一下以編輯母片,第二層,第三層,第四層,第五層,第,17,章,Java Collections,集合物件,17-1,集合物件的基礎,17-2,實作,Set,介面的集合類別,17-3,實作,List,介面的集合類別,17-4,實作,Map,介面的集合類別,17-5,輸出,Collections,物件的元素,17-1-1 Java Collections Framework,17-1-2,集合介面,17-1-3,泛型,Java,的集合物件,17-1,集合物件的基礎,17-1-1 Java Collections Framework-,說明,集合物件(,Collections,)是指一組相關的物件集合,將這組物件集合視為單一物件,在集合物件中的物件稱為元素(,Elements,),集合物件有很多種,其儲存的元素可能允許重複,有些集合物件的元素會進行排序,在舊版,Java,技術是指,Vector,和,Hashtable,物件。,17-1-1 Java Collections Framework-,架構,1,JDK 1.2,之後的版本提供全新的集合物件架構,稱為,Java Collections Framework,,這是用來儲存和處理集合物件的統一軟體架構,其組成如下所示:,集合介面(,Collection Interface,):,一組定義完善的,Java,介面,提供處理集合物件的標準介面,其目的是讓集合物件擁有一致的操作方式,包含:,Collection,、,Set,、,SortedSet,、,List,、,Map,和,SortedMap,介面。,17-1-1 Java Collections Framework-,架構,2,實作(,Implementations,):,實作集合介面的類別,稱為具體類別(,Concrete Class,),對比抽象類別,這是可以使用,new,運算子建立實例的類別,以實作的集合介面來區分,常用的介面如下表所示:,17-1-1 Java Collections Framework-,架構,3,演算法(,Algorithms,):,當物件實作集合介面,其實作的一些多形方法,可以執行集合物件元素的搜尋與排序等演算法。,17-1-2,集合介面,-,說明,集合介面(,Collection Interface,)是用來處理集合物件中儲存的物件,提供一致的物件操作方式來新增、刪除和搜尋元素的方法,這是一個介面型態的類別架構,其根介面是:,Collection,和,Map,介面。,17-1-2,集合介面,-Collection,集合介面,(,圖例,),Collection,介面的擁有,Set,和,List,子介面,,Set,介面擁有,SortedSet,子介面,介面的繼承架構,如右圖所示:,17-1-2,集合介面,-Collection,集合介面,(,介面說明,),Collection,介面:,類別架構的根介面,不過並沒有任何類別直接實作,Collection,介面,,Java Collections Framework,的具體類別(,Concrete Class,)都是實作其子介面。,Set,介面:,實作,Set,介面的集合物件,其儲存元素沒有重複元素。,List,介面:,實作,List,介面的集合物件可以擁有重複元素,元素是以循序方式存入,可以使用類似陣列索引方式來存取元素。,SortedSet,介面:,Set,介面的子介面,實作,SortedSet,介面的集合物件,其儲存元素不只沒有重複,而且是從小到大進行排序。,17-1-2,集合介面,-Map,集合介面,(,圖例,),Map,介面並不是,Collection,介面的子介面,,Map,介面是一種特殊的,Set,介面,儲存的資料是一組對應元素,擁有子介面,SortedMap,,介面繼承架構,如右圖所示:,17-1-2,集合介面,-Map,集合介面,(,介面說明,),Map,介面:,實作,Map,介面的集合物件並沒有重複元素,儲存的元素是一對:鍵值(,Key,)和值(,Value,),這是一種單方向的對應,鍵值可以對應其值,例如:網域名稱對應,IP,位址。,SortedMap,介面:,對應,SortedSet,介面的,Map,介面子介面,實作,SortedMap,介面的集合物件,其儲存元素沒有重複,而且是以鍵值由小到大進行排序。,17-1-3,泛型,Java,的集合物件,-,說明,泛型,Java,(,Generic Java,)是,JDK 5.0,版在,Java,語法上的重大變革,提供類似,C+,語言的樣版(,Templates,)語法,新增編譯階段的集合物件型態檢查功能,可以減少程式碼中取出元素所需的大量型態轉換。,17-1-3,泛型,Java,的集合物件,-,泛型型態,泛型,Java,可以使用泛型型態(,Generic Types,)來擴充,Java,語言,簡單的說,就是在建立集合物件時,以泛型型態指定集合物件儲存元素的資料型態,如下所示:,HashSet,hset,=,new,HashSet,();,HashSet,hset,=,new,HashSet,();,HashSet,hset,=,new,HashSet,();,使用”,”,括起資料型態就是泛型型態,它是用來指定集合物件儲存元素的資料型態。,17-2,實作Set介面的集合類別,17-2-1 Set,介面的基礎,17-2-2,HashSet,類別,實作,Set,介面,17-2-3,TreeSet,類別,實作,SortedSet,介面,17-2,實作,Set,介面的集合類別,Set,介面是,Collection,介面的子介面,實作,Set,介面的集合物件,其儲存元素並沒有重複,如果是實作子介面,SortedSet,的集合物件,儲存的就是排序元素。,17-2-1 Set,介面的基礎,-,說明,Set,介面繼承,Collection,介面的所有方法,只是規範建構子和某些方法,以滿足其儲存元素不能重複。,Set,介面方法(也是,Collection,介面方法),,E,是泛型型態,如下表所示:,17-2-1 Set,介面的基礎,-,介面方法,17-2-2,HashSet,類別,實作,Set,介面,(,說明,),HashSet,類別實作,Set,介面,繼承,Collection,介面的方法,使用雜湊表(,Hash Table,)演算法來改進新增、刪除和存取集合物件元素的執行效率,其儲存元素的排列和插入順序不同,也不保證擁有固定的排列順序。,17-2-2,HashSet類別,實作Set介面,(,建立物件,),HashSet,類別提供數種過載建構子,在,Java,程式建立,HashSet,物件(,5.0,版),如下所示:,HashSet,hset,=new,HashSet,();,上述程式碼建立儲存字串元素的,HashSet,物件,泛型型態為,String,。,17-2-2,HashSet類別,實作Set介面,(,建構子,),過載建構子的說明,如下表所示:,17-2-3,TreeSet,類別,實作,SortedSet,介面,(,說明,),TreeSet,類別實作,SortedSet,介面,這是,Set,介面的子介面,其儲存元素不只沒有重複,而且由小到大進行排序,這是一種排序集合物件(,Sorted Collection,)。,17-2-3,TreeSet,類別,實作,SortedSet,介面,(,建立物件,),TreeSet,類別提供數種過載建構子,在,Java,程式建立,TreeSet,物件(,5.0,版),如下所示:,TreeSet,tset,=new,TreeSet,();,上述程式碼建立儲存字串元素的,TreeSet,物件。,17-2-3,TreeSet,類別,實作,SortedSet,介面,(,建構子,),過載建構子的說明,如下表所示:,17-2-3,TreeSet,類別,實作,SortedSet,介面,(,建構子,),TreeSet,類別實作,SortedSet,介面,除了繼承,Set,介面的方法外,其新增的介面方法,如下表所示:,17-3,實作List介面的集合類別,17-3-1 List,介面的基礎,17-3-2,ArrayList,類別,17-3-3,LinkedList,類別,17-3-1 List,介面的基礎,-,說明,List,介面也是繼承自,Collection,介面,實作此介面的集合類別是一種循序集合物件(,Ordered Collection,),允許元素重複,元素擁有索引位置,可以使用類似陣列索引方式來存取元素。,循序集合物件(,Ordered Collection,)和排序集合物件(,Sorted Collection,)不同,循序集合物件如同陣列是指以元素位置的索引來排列,排序集合物件是以元素值的大小進行排列。,17-3-1 List,介面的基礎,-,介面方法,17-3-2,ArrayList,類別,-,說明,ArrayList,類別實作,List,介面,儲存元素的方式類似陣列,元素使用索引位置依序存入,只需將元素新增或插入,ArrayList,物件,並不用事先宣告物件的尺寸,如同一個可調整陣列尺寸的動態陣列。,17-3-2,ArrayList,類別,-,建立物件,在,Java,程式建立,ArrayList,物件(,5.0,版),如下所示:,ArrayList,alist,=new,ArrayList,();,上述程式碼使用建構子建立,ArrayList,物件儲存字串元素,泛型型態是,String,。,17-3-2,ArrayList,類別,-,建構子,過載建構子的說明,如下表所示:,17-3-2,ArrayList,類別,-,方法,ArrayList,物件除了實作,List,介面的方法外,還新增一些方法,其說明如下表所示:,17-3-2,ArrayList,類別,-,範例,在新增,ArrayList,物件的元素後,,Java,程式可以使用,for,迴圈配合索引取得每一個物件元素,如下所示:,for(,int,i=0;i,alist.size,();i+),System.out.print(alist.get(i,)+);,程式碼使用,size(),方法取得元素數,,get(),方法配合索引位置取出,ArrayList,物件的元素。,17-3-3,LinkedList,類別,-,說明,LinkedList,類別是實作,List,介面,這是類似鏈結串列(,Linked Lists,)資料結構的類別,各節點如同火車掛車廂一般,將每一個車廂的節點連結起來,如下圖所示:,17-3-3,LinkedList類別-,建,構子,LinkedList,類別提供方法可以在串列的頭和尾取出和刪除元素,在,Java,程式只需使用建構子就可建立,LinkedList,物件,過載建構子的說明,如下表所示:,17-3-3,LinkedList類別,-,方法,LinkedList,物件除了實作,List,介面的方法外,新增方法的說明,如下表所示:,17-4,實作Map介面的集合類別,17-4-1 Map,介面的基礎,17-4-2,HashMap,類別,實作,Map,介面,17-4-3,TreeMap,類別,實作,SortedMap,介面,17-4-1 Map,介面的基礎,-,說明,Map,介面是類別架構的根介面,擁有子介面,SortedMap,介面,實作,Map,介面的集合類別,其儲存物件一共有,2,個:鍵值(,Key,)和對應值(,Value,)的物件,其中鍵值不可重複,一個鍵值對應一個值。,17-4-1 Map,介面的基礎,-,介面方法,17-4-2,HashMap,類別,實作,Map,介面,(,說明,),HashMap,類別實作,Map,介面,相當於是舊版的,Hashtable,類別,其儲存元素有,2,個:,key,鍵值和其對應值,允許儲存,null,值。,HashMap,類別提供數種過載的建構子,在,Java,程式建立,HashMap,物件(,5.0,版),如下所示:,HashMap,hmap,=new,HashMap,();,上述程式碼建立,HashMap,物件,因為儲存元素有鍵值和對應值,所以指定,2,個泛型型態。,17-4-2,HashMap,類別,實作,Map,介面,(,建構子,),過載建構子的說明,如下表所示:,17-4-3,TreeMap,類別,實作,SortedMap,介面,(,說明,),TreeMap,類別實作,SortedMap,介面,,SortedMap,介面是,Map,介面的子介面,實作此介面的集合物件是以鍵值由小到大進行排序。在,Java,程式建立,TreeMap,物件(,5.0,版),如下所示:,TreeMap,tmap,=new,TreeMap,();,上述程式碼建立,TreeMap,物件,元素都為字串,String,資料型態。,17-4-3,TreeMap,類別,實作,SortedMap,介面,(,建構子,),過載建構子的說明,如下表所示:,17-4-3,TreeMap,類別,實作,SortedMap,介面,(,方法,),TreeMap,類別實作,SortedMap,介面,除了繼承,Map,介面的方法外,其新增的介面方法,如下表所示:,17-,5,輸出Collections物件的元素,17-5-1,Iterator,介面輸出元素,17-5-2,ListIterator,介面輸出元素,17-5-1,Iterator,介面輸出元素,-,說,明,Iterator,介面改進舊版,Java,技術的,Enumeration,介面,提供一致方法來走訪集合物件的元素或刪除元素,因為,Collections,集合物件已經實作,Iterator,介面,換句話說,只需使用,Collection,、,Set,和,List,介面的,iterator,(),方法,就可以取得,Iterator,介面的物件,如下表所示:,17-5-1,Iterator,介面輸出元素,-,範例,例如:,HashSet,物件,hset,可以使用上表方法取得,Iterator,介面物件,如下所示:,Iterator,iterator,=,hset.iterator,();,上述程式碼是將,HashSet,物件的元素轉換成,Iterator,介面物件,泛型型態為,String,,現在我們只需呼叫介面方法,就可以依序走訪和刪除元素,。,17-5-1,Iterator,介面輸出元素,-,介,面方法,在取得,Iterator,介面物件後,即可配合,while,迴圈走訪集合物件的元素,如下所示:,while(,iterator.hasNext,(),System.out.print,(+,iterator.next,();,上述程式碼使用,hasNext,(),方法檢查是否有下一個元素,如果有,使用,next(),方法取得此元素。,17-5-2,ListIterator,介面輸出元素,-,說明,實作,List,介面的集合物件除了可以使用,Iterator,介面外,還可以使用,ListIterator,介面,這是,Iterator,介面的子介面,除了可以使用一致的走訪方法外,還可以雙向走訪集合物件的元素,即從頭到尾,或是從尾到頭的走訪。,17-5-2,ListIterator,介面輸出元素,-,取得介面物件,List,介面物件,listIterator,(),方法,可以取得,ListIterator,介面物件,如下表所示:,17-,5,-2,ListIterator介面輸出元素,-,範例,例如:,ArrayList,物件,alist,可以使用上表方法取得,ListIterator,介面物件,如下所示:,ListIterator,iterator,=alist.listIterator(0);,上述程式碼是將,ArrayList,物件的元素轉換成,ListIterator,介面物件,泛型型態為,String,,然後就可以使用介面方法雙向走訪、新增、取代和刪除元素。,17-,5,-2,ListIterator介面輸出元素,-,介面方法,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服