杏殼學堂-第八章_集合_第1頁
杏殼學堂-第八章_集合_第2頁
杏殼學堂-第八章_集合_第3頁
杏殼學堂-第八章_集合_第4頁
杏殼學堂-第八章_集合_第5頁
已閱讀5頁,還剩41頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、API-集合百川本章內容集合類概述l 為什么出現集合類?面象語言對事物的體現都是以對象的形式,所以為了方便對多個對象的操作,Java就提供了集合類。l 數組和集合類同是容器,有何不同?數組雖然也可以對象,但長度是固定的;集合長度是可變的。數組中可以基本數據類型,集合只能對象。l 集合類的特點集合只用于對象,集合長度是可變的,集合可以不同類型的對象。Collection接口概述l Collection接口概述Collection 層次結構中的根接口。Collection 表示一組對象,這些對象也稱為 collection 的元素。一些collection 允許有重復的元素,而另一些則不允許。一些

2、 collection 是有序的,而另一些則是無序的。Collection接口成員方法add(E e)remove(Object o)lll void clear()contains(Object o)isEmpty()llsize()lCollection接口成員方法addAll(Collection c) removeAll(Collection c) containsAll(Collection c)retainAll(Collection c)llllCollection接口成員方法l Object toArray()把集合轉成數組,可以實現集合的遍歷l Iterator iterat

3、or()迭代器,集合的遍歷方式Iterator接口概述l Iterator接口概述對 collection 進行迭代的迭代器依賴于集合而存在Iterator接口成員方法hasNext()ll E next()Iterator接口的使用和原理講解l Iterator接口的使用講解l Iterator接口的原理講解為什么不定義成一個類,而是一個接口看源碼是如何實現的Collection案例字符串并遍歷自定義對象并遍歷Student(name,age)llList接口概述l List接口概述有序的 collection(也稱為序列)。此接口的用戶可以對列表中每個元素的位置進行精確地控制。用戶可以根據

4、元素的整數索引(在列表中的位置)元素,并搜索列表中的元素。與 set 不同,列表通常允許重復的元素。l List案例字符串并遍歷自定義對象并遍歷List接口成員方法l void add(l E remove(index,E element)index)l E get(l E set(index)index,E element)l ListIterator listIterator()ListIterator接口的成員方法hasPrevious()ll E previous()l ConcurrentModificationException現象原因解決方案常見數據結構l 棧l 隊列 l 數組

5、l 鏈表 l 樹l 哈希表ArrayList類概述及使用l ArrayList類概述底層數據結構是數組,查詢快,增刪慢線程不安全,效率高l ArrayList案例字符串并遍歷自定義對象并遍歷Vector類概述及使用l Vector類概述底層數據結構是數組,查詢快,增刪慢線程安全,效率低l Vector類特有功能public void addElement(E obj)public E elemen(index)public Enumeration elements()l Vector案例字符串并遍歷自定義對象并遍歷LinkedList類概述及使用l LinkedList類概述底層數據結構是鏈表

6、,查詢慢,增刪快線程不安全,效率高l LinkedList類特有功能public void add(E e)及addLast(E e)()及getLast()public E getpublic E remove()及public E removeLast()l LinkedList案例字符串并遍歷自定義對象并遍歷List集合練習l ArrayList去除集合中字符串的重復值(字符串的內容相同)去除集合中自定義對象的重復值(對象的成員變量值都相同)l LinkedList請用LinkedList模擬棧數據結構的集合,并測試List集合練l ArrayList去除集合中字符串的重復值(字符串的內

7、容相同)去除集合中自定義對象的重復值(對象的成員變量值都相同)l LinkedList請用LinkedList模擬棧數據結構的集合,并測試泛型概述及使用l JDK1.5以后出現的機制l 泛型出現的原因 l 泛型出現的好處 l 泛型的書寫格式l 把前面的集合代碼用泛型改進泛型由來l 為什么會有泛型呢?通過案例引入早期的Object類型可以接收任意的對象類型,但是在實際的使用中,會有類型轉換的問題。也就存在這隱患,所以Java提供了泛型來解決這個安全問題。泛型應用l 泛型類把泛型定義在類上格式:public class 類名注意:泛型類型必須是l 泛型方法把泛型定義在方法上格式:public 返回

8、類型 方法名(泛型類型 .)l 泛型接口把泛型定義在接口上類型格接式口:p名ub泛型高級(通配符)l 泛型通配符任意類型,如果沒有明確,那么就是Object以及任意的Java類了l ? extends E向下限定,E及其子類l ? super E向上限定,E及其父類增強for概述及使用l 增強for概述簡化數組和Collection集合的遍歷l 格式:for(元素數據類型 變量 : 數組或者Collection集合) 使用變量即可,該變量就是元素l 好處:簡化遍歷l 注意事項:增強for的目標要判斷是否為nulll 把前面的集合代碼的遍歷用增強for改進靜態導入概述及使用l 靜態導入概述格式:

9、import sic 包名.類名.方法名;可以直接導入到方法的級別l 注意事項方法必須是靜態的如果有多個同名的靜態方法,容易不知道使用誰?這個時候要使用,必須加前綴。由此可見,意義不大,所以一般不用,但是要能看懂。可變參數概述及使用l 可變參數概述定義方法的時候不知道該定義多少個參數l 格式修飾符 返回值類型 方法名(數據類型注意:變量名)這里的變量其實是一個數組如果一個方法有可變參數,并且有多個參數,那么,可變參數肯定是最后一個l Arrays工具類中的一個方法public sic List asList(T. a)List集合練習2l 集合的嵌套遍歷l 獲取10個1-20之間的隨機數,要求

10、不能重復l 鍵盤錄入多個數據,以0結束,要求在控制臺輸出這多個數據中的最大值Set接口概述l Set接口概述一個不包含重復元素的 collection。l Set案例字符串并遍歷自定義對象并遍歷HashSet類概述l HashSet類概述不保證 set 的迭代順序特別是它不保證該順序恒久不變。l HashSet如何保證元素唯一性底層數據結構是哈希表(元素是鏈表的數組)哈希表依賴于哈希值添加功能底層依賴兩個方法:hashCode()equals(Object obj)LinkedHashSet類概述l LinkedHashSet類概述元素有序唯一由鏈表保證元素有序由哈希表保證元素唯一TreeSe

11、t類概述l TreeSet類概述使用元素的自然順序對元素進行排序或者根據創建 set 時提供的 Comparator 進行排序具體取決于使用的構造方法。l TreeSet是如何保證元素的排序和唯一性的底層數據結構是樹)樹(樹是一種自平衡的二叉Set集合練習l HashSet集合自定義對象并遍歷。如果對象的成員變量值相同即為同一個對象l TreeSet集合自定義對象并遍歷如果對象的成員變量值相同即為同一個對象按照進行從大到小進行排序l 編寫一個程序,獲取10個1至20的隨機數,要求隨機數不能重復。l 鍵盤錄入5個學生信息(,語文成績,數學成績,英語成績),按照總分從高到低輸出到控制臺Collec

12、tion集合總結l CollectionListArrayListVectorLinkedListSetHashSetTreeSetMap接口概述l Map接口概述將鍵到值的對象一個不能包含重復的鍵每個鍵最多只能到一個值l Map接口和Collection接口的不同Map是雙列的,Collection是單列的Map的鍵唯一,Collection的子體系Set是唯一的Map集合的數據結構值針對鍵有效,跟值無關 Collection集合的數據結構是針對元素有效Map接口成員方法l V put(K key,V value) l V remove(Object key) l void clear()c

13、ontainsKey(Object key)containsValue(Object value) isEmpty()lllsize()lMap接口成員方法l V get(Object key)l Set keySet()l Collection values()l SetMntry entrySet()Map集合遍歷l 方式1:根據鍵找值獲取所有鍵的集合遍歷鍵的集合,獲取到每一個鍵根據鍵找值l 方式2:根據鍵值對對象找鍵和值獲取所有鍵值對對象的集合遍歷鍵值對對象的集合,獲取到每一個鍵值對對象根據鍵值對對象找鍵和值HashMap類概述l HashMap類概述鍵是哈希表結構,可以保證鍵的唯一性l

14、 HashMap案例HashMapHashMapHashMapHashMapLinkedHashMap類概述l Map 接口的哈希表和預知的迭代順序。列表實現,具有可TreeMap類概述l TreeMap類概述鍵是樹結構,可以保證鍵的排序和唯一性l TreeMap案例HashMapHashMapMap集合案例l aababcabcdabcde,獲取字符串中每一個字母出現的次數要求結果:a(5)b(4)c(3)d(2)e(1)l 集合的嵌套遍歷HashMap嵌套HashMapHashMap嵌套ArrayListArrayList嵌套HashMap面試題l HashMap和Hashtable的區別l List,Set,Map等接口是否都繼承子Map接口Collections類概述和成員方法l Collections類概述針對集合操作 的工具類l Collections成員方法public sic void sort(List list)public s public s public s

溫馨提示

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

評論

0/150

提交評論