![實用數(shù)據結構輔導知識點_第1頁](http://file4.renrendoc.com/view/32438c4c21ef1d2e98660e8808a4f8ff/32438c4c21ef1d2e98660e8808a4f8ff1.gif)
![實用數(shù)據結構輔導知識點_第2頁](http://file4.renrendoc.com/view/32438c4c21ef1d2e98660e8808a4f8ff/32438c4c21ef1d2e98660e8808a4f8ff2.gif)
![實用數(shù)據結構輔導知識點_第3頁](http://file4.renrendoc.com/view/32438c4c21ef1d2e98660e8808a4f8ff/32438c4c21ef1d2e98660e8808a4f8ff3.gif)
![實用數(shù)據結構輔導知識點_第4頁](http://file4.renrendoc.com/view/32438c4c21ef1d2e98660e8808a4f8ff/32438c4c21ef1d2e98660e8808a4f8ff4.gif)
![實用數(shù)據結構輔導知識點_第5頁](http://file4.renrendoc.com/view/32438c4c21ef1d2e98660e8808a4f8ff/32438c4c21ef1d2e98660e8808a4f8ff5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、常璐璐,趙玉霞 編1數(shù)組,Arrays類學習目標:1.掌握關于數(shù)組概念2.掌握Arrays類以及常用方法回憶數(shù)組概念、定義及使用;掌握Arrays類常用方法繼承關系:Arrays類是Object類直接子類。如下圖所示:Arrays類常用方法:sort()對指定的類型數(shù)組按數(shù)字升序進行排序。binarySearch()使用二分搜索法來搜索指定的類型數(shù)組,以獲得指定的值。equals()用于比較兩個數(shù)組是否相等。fill()用以某個值填充整個數(shù)組。asList()接受任意的數(shù)組為參數(shù),將其轉變?yōu)?List 容器。Java的二分查找算法:private static int binarySearch
2、0(Object a, int fromIndex, int toIndex, Object key) int low = fromIndex;int high = toIndex - 1;while (low = high) int mid = (low + high) /2; Comparable midVal = (Comparable)amid; int cmp = midVpareTo(key); if (cmp 0)high = mid - 1; elsereturn mid; / key foundreturn -(low + 1); / key not found. 算法思想描
3、述:查找的數(shù)組必須是按關鍵字值排好序;減半查找范圍,確定待查元素是否存在于數(shù)組中。1、獲取中間元素的位置,拿帶查元素與中間位置元素比較;2、比中間元素大,在后半部分找;3、比中間元素小,在前半部分找。注意問題:sort()的使用binarySearch()的使用數(shù)組與Arrays類的區(qū)別練習:請參見讀程序寫結果中程序1、程序2、程序32List、ArrayList學習目標:1.掌握ArrayList的具體使用2.掌握List接口的實現(xiàn)ArrayList是一種線性表,在內存中是連續(xù)存儲的,適合于元素的隨機存取。添加和刪除操作是需要依據添加的位置來定,如果在ArrayList最后元素后面添加和刪除
4、元素,在性能方面還算好,但是如果是在ArrayList中間添加和刪除元素的話,代價就會很大。1.ArrayList結構特點:數(shù)組大小固定,ArrayList可以自動增加空間ArrayList常用方法:size()返回此列表中的元素數(shù)。get()返回此列表中指定位置上的元素。set()用指定的元素替代此列表中指定位置上的元素。add()將指定的元素添加到此列表的尾部;將指定的元素插入此列表中的指定位置。contains()如果此列表中包含指定的元素,則返回 true。 remove()移除此列表中指定位置上的元素。 Object toArray()按適當順序(從第一個到最后一個元素)返回包含此列
5、表中所有元素的數(shù)組。 3.遍歷方法for循環(huán)語句:for(int i=0;i;i+)迭代器:Iterator it = list.iterator();while( it.hasNext() ) E e = it.next(); forEach結構:for(E e : list) 4.了解 ArrayList與Vector的區(qū)別5List接口的實現(xiàn)6.繼承關系如下圖:List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置。List接口與其常用實現(xiàn)類的繼承實現(xiàn)關系:對比List接口的兩個常用實現(xiàn)類簡述實現(xiàn)操作特性成員要求List提供基于索引的對成員的隨機訪問ArrayL
6、ist提供快速的基于索引的成員訪問,對尾部成員的增加和刪除支持較好成員可為任意Object子類的對象LinkedList對列表中任何位置的成員的增加和刪除支持較好,但對基于索引的成員訪問支持性能較差成員可為任意Object子類的對象1、上機實現(xiàn)下面程序public static void main(String args) List list = new ArrayList();for(int i=0;i5;i+)list.add(編程詞典+i);ListIterator li = list.listIterator();while(li.hasNext()System.out.println
7、(li.next();練習:請參見讀程序寫結果中程序4、程序5創(chuàng)建一個類Cat :包含屬性name,在構造方法中進行初始化;添加一個方法show(),用以打印name屬性的值 創(chuàng)建一個類CatTest:添加main方法,實現(xiàn)創(chuàng)建一個ArrayList,向其中添加幾個Cat對象遍歷該集合,并且對每個Cat對象調用show()方法 參考代碼:class Catprivate String name;public Cat(String name) = name;public void show()System.out.println(name);public class CatTest public
8、 static void main(String args)/創(chuàng)建一個ArrayList,向其中添加幾個Cat對象;ArrayList list = new ArrayList();list.add(new Cat(mimi);list.add(new Cat(qiqi);list.add(new Cat(ding);/遍歷該集合,并且對每個Cat對象調用show()方法。for(int i= 0;ilist.size();i+)Cat c = (Cat)list.get(i);c.show();3LinkedList學習目標:1.掌握LinkedList類的使用方法2.掌握棧和隊列的概念1.
9、結點、鏈表的概念以及鏈式存儲的思想2.LinkedList類的常用方法(對比ArrayList)的掌握3.與ArrayList類比較,各自特點,如何應用、選擇LinkedList的常用方法:add()向鏈表末尾添加一個新的節(jié)點remove()刪除指定位置上的節(jié)點;刪除首次出現(xiàn)含有數(shù)據elemen的節(jié)點。get()得到鏈表中指定位置處節(jié)點中的對象。set()將當前鏈表index位置結點中的對象替換為參數(shù)element指定的對象,并返回被替換的對象。4.用LinkList類實現(xiàn)棧和隊列棧中常用方法:pop()從此列表所表示的堆棧處彈出一個元素。 push()將元素推入此列表所表示的堆棧。新增以下新
10、方法:構造方法LinkedList() getFirst()和getLast()removeFirst()和removeLast()addFirst()和addLast()5、類繼承關系如圖:List接口實現(xiàn):1.LinkedList是采用雙向循環(huán)鏈表實現(xiàn)的。2.利用LinkedList實現(xiàn)棧(stack)、隊列(queue)、雙向隊列(double-ended queue )采用鏈表的方法來實現(xiàn)棧:用方法addFirst(Object element)實現(xiàn)進棧操作。用方法removeFirst()實現(xiàn)出棧。用方法getFirst()實現(xiàn)棧頂數(shù)據查詢。用方法isEmpty() 實現(xiàn)棧是否為空。
11、練習:請參見讀程序寫結果中程序6、程序7、程序7上機操作:創(chuàng)建一個類Stack,代表堆棧(其特點為:后進先出),添加方法add(Object obj)、以及delete( ),添加main方法進行驗證,要求:使用LinkedList實現(xiàn)堆棧在向LinkedList中添加時,使用addLast( )方法在從LinkedList中取出時,使用removeLast( )方法4Collections與Collection學習目標:1.會使用Collections類2.掌握Collection接口1.了解Collection接口2.掌握Collection接口常用方法3.掌握Collections類中常
12、用方法Collection接口中常用方法: HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/util/Collection.html l toArray() toArray() 返回包含此 collection 中所有元素的數(shù)組。 HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/
13、util/Collection.html l add(E) add() 確保此 collection 包含指定的元素。 HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/util/Collection.html l equals(java.lang.Object) equals()比較此 collection 與指定對象是否相等。 HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdm
14、inistrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/util/Collection.html l hashCode() hashCode()返回此 collection 的哈希碼值。 HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/util/Collection.html l size() size() 返回此 collection 中的元素數(shù)。iterator()返回調用類集的迭代程序r
15、emove()從調用類集中刪除obj的一個實例。如果這個元素被刪除了,則返回true;否則返回false4Comparable與Comparator的區(qū)別聯(lián)系5、Collections類的繼承關系:Collections類中常用方法: HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/util/Collections.html l binarySearch(java.util.List, T) binarySearch()使用二分搜索法搜
16、索指定列表,以獲得指定對象。 HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/util/Collections.html l sort(java.util.List) sort() 根據元素的自然順序對指定列表按升序進行排序。 HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/ut
17、il/Collections.html l synchronizedMap(java.util.Map) synchronizedMap()返回由指定映射支持的同步(線程安全的)映射。 HYPERLINK mk:MSITStore:C:Documents%20and%20SettingsAdministrator桌面桌面文件實用數(shù)據結構JDK_API_1_6_zh_CN.CHM:/java/util/Collections.html l synchronizedSet(java.util.Set) synchronizedSet() 返回指定 set 支持的同步(線程安全的)set。sort(
18、)、reverse()、max()、min()、fill()等方法6、Collection接口的繼承關系:1.Collections中的大多數(shù)方法都與List或collection有關。1Collection是最基本的集合接口,一個Collection代表一組Object,即Collection的元素(Elements)。一些Collection允許相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接繼承自Collection的類,Java SDK提供的類都是繼承自Collection的“子接口”如List和Set。 2Collections類完全由在 collectio
19、n 上進行操作或返回 collection 的靜態(tài)方法組成。它包含在 collection 上操作的多態(tài)算法,即“包裝器”,包裝器返回由指定 collection 支持的新 collection,以及少數(shù)其他內容。2、Collection 的遍歷:Collection的實際類型如何,它都支持一個iterator()的方法,該方法返回一個迭代器,使用該迭代器即可逐一訪問Collection中每一個元素。借助Iterator接口實現(xiàn)。Iterator接口結構:模板代碼:Iterator it=collection.iterator(); / 獲得一個迭代器while(it.hasNext() Ob
20、ject obj = it.next(); / 得到下一個元素利用Collection接口的 iterator()獲得一個實現(xiàn)了Iterator接口的迭代器,然后利用其完成Collection接口對象的遍歷操作。模板代碼如右所示:對象排序方法:1、Comparable接口所有可以”排序“的類都實現(xiàn)了java.lang.Comparable接口Comparable接口中只有一個方法:public int compareTo(Object obj);2、Comparator接口Comparator 通常在對于自然排序不能滿足需要時使用。Comparator接口定義了兩個方法:compare()和e
21、quals()。 public interface Comparator int compare(T o1, T o2);boolean equals(Object obj);練習:請參見讀程序寫結果中程序9( Collections)練習:請參見讀程序寫結果中程序10( Collections、Iterator接口)練習:請參見讀程序寫結果中程序11( Comparator接口)5Set與HashSet學習目標:1掌握Set接口常用方法2.掌握 HashSet的特點及學會使用HashSet類 3.了解其它的Set接口實現(xiàn)類1、Set接口:擴展了 Collection 接口,Set接口是Col
22、lection接口的子接口,不包含重復元素。它采用所有原始方法,并且未引入任何新方法。繼承關系如下圖:Set接口定義:public interface Set extends Collection /接口定義請參照API幫助文檔Set接口中的常用方法:2、Set 接口提供了兩種通用實現(xiàn):HashSet 和 TreeSetHashSet ,采用散列函數(shù)對元素進行排序,這是專門為快速查詢而設計的;來存儲不重復的集合。TreeSet,當需要以一種排序的方式從集合中提取元素的時候使用。為了正確運行,添加到 TreeSet 中的元素必須是可排序的。采用二叉樹的數(shù)據結構進行排序元素。3、HashSet類定
23、義:是Set接口最常用的實現(xiàn)之一,存入HashSet的對象必須定義hashCode(),其元素在其中存儲不保證任何順序。實際上,HashSet存儲對象引用時是按照哈希策略來實現(xiàn)的。public class HashSet extends AbstractSetimplements Set, Cloneable, java.io.Serializable/具體方法實現(xiàn)參考API幫助文檔HashSet類常用方法:HashSet類繼承關系:HashSet類的幾個構造器:public HashSet():該構造器將構造一個空的HashSet對象。該對象的初始容量為16。public HashSet(i
24、nt initalCapacity):參數(shù) initalCapacity表示指定的初始容量,該構造器將構造一個具有指定容量的空HashSet對象。public HashSet(Collection c):參數(shù)c為包含指定元素的Collection。該構造器將構造一個以c中的元素為初始內容的HashSet對象。TreeSet類定義:實現(xiàn)了SortedSet接口,此類保證排序后的Set按照升序排列元素,底層為樹結構。使用它可以從Set中提取有序的序列。 public class TreeSet extends AbstractSet implements NavigableSet, Cloneab
25、le, java.io.SerializableTreeSet類繼承關系:TreeSet類中常用方法見右圖:Set中的幾個重要方法:equals()、contains()、hashCode()Set接口中元素具有唯一性,改寫equals()方法。Set是一種不包含重復的元素的Collection,即任意的兩個元素e1和e2都有e1.equals(e2)=false,Set最多有一個null元素。HashSet散列(hash),特點:查找的高效率(例如兩個集合相交),改寫hashCode()方法分析:HashSet要求放入的對象必須實現(xiàn)hashCode()方法,放入的對象,是以hashcode碼
26、作為標識的,而具有相同內容的String對象,hashcode是一樣,所以放入的內容不能重復。但是同一個類的對象可以放入不同的實例 。4了解其它的Set相關類: LinkedHashSet隨堂練習:1、分析程序,寫出結果import java.util.Collection;import java.util.HashSet;import java.util.Iterator;public class SetTest2 public static void main(Stringargs) Collection c;c = new HashSet ();c.add(1);c.add(3);c.a
27、dd(2);Iterator it = c.iterator();while (it.hasNext() System.out.println(it.next(); / 返回集合元素2、分析程序,寫出結果import java.util.*;public class HashSetTestpublic static void main(String args) HashSet set = new HashSet(); set.add(1st); set.add(2nd); set.add(3rd); set.add(new String(Four); set.add(new Integer(6
28、); set.add(“2nd”); / 重復的元素沒有被加入 System.out.println(set); / 元素的順序與加入的順序沒有關系 練習:請參見讀程序寫結果中程序12(Arrays和HashSet)練習:請參見讀程序寫結果中程序13(TreeSet和SortedSet)6Map與HashMap學習目標:1掌握Map接口的使用2.掌握HashMap類的應用Map接口:將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。Map看起來比較像由映射組成的Set。Map接口不是Collection接口的繼承。定義:public interface Map /具體方
29、法請查看API幫助文檔繼承關系:Map接口中常見方法:其中重要方法:get()、put()、equals()、hashCode()、keySet()、values()、containsKey()、containsValue()Map接口的可用實現(xiàn)類主要有:HashMap,TreeMap,Hashtable,Properties其中:Hashtable,Properties是JDK1.0/1.1中的。HashMap對key進行散列。HashMap通過哈希碼對其內部的映射關系進行快速查找。TreeMap按照key進行排序。TreeMap中的映射關系存在一定的順序,如果希望在遍歷集合時是有序的,則應
30、該使用由TreeMap類實現(xiàn)的Map集合,否則建議使用由HashMap類實現(xiàn)的Map集合,因為由HashMap類實現(xiàn)的Map集合對于添加和刪除映射關系更高效。Map接口提供三種collection 視圖允許以鍵集、值集或鍵-值映射關系集的形式查看某個映射的內容。允許以三種方法將映射視作集合。如下表:keySet是映射中包含的鍵集 Set keys=map.keySet();values是映射中的值的集合Collections values=map.values();entrySet 是包含在映射中的鍵-值對的集Set kvs=map.entrySet(); HashMap類定義:HashMap
31、類實現(xiàn)了Map接口public class HashMap extends AbstractMapimplements Map, Cloneable, Serializable/具體方法請查看API幫助文檔繼承關系:HashMap類常見方法見右圖:其中重要的方法有:get()、put()、equals()、hashCode()、keySet()、values()、containsKey()、containsValue()HashMap的常用方法:HashMap類說明:由HashMap類實現(xiàn)的Map集合,允許以null作為鍵對象,但是因為鍵對象不可以重復,所以這樣的鍵對象只能有一個。如果經常需要
32、添加、刪除和定位映射關系,建議利用HashMap類實現(xiàn)Map集合,不過在遍歷集合時,得到的映射關系是無序的。在使用由HashMap類實現(xiàn)的Map集合時,需要重寫作為主鍵對象類的hashCode()方法重寫hashCode()方法時,有以下兩條基本原則:(1)不唯一原則:不必為每個對象生成一個唯一的哈希碼,只要通過hashCode方法生成的哈希碼能夠利用get()方法得到利用put()方法添加的映射關系就可以。(2)分散原則:生成哈希碼的算法應盡量使哈希碼的值分散一些,不要很多哈希碼值都集中在一個范圍內,這樣有利于提高由HashMap類實現(xiàn)的Map集合的性能。遍歷HashMap的方法:/遍歷方法
33、1for (Iterator iter=map.keySet().iterator(); iter.hasNext();)System.out.println(iter.next();/遍歷方法2Iterator iter=map.keySet().iterator();while (iter.hasNext() ) System.out.println(iter.next();TreeMap類定義:TreeMap類不僅實現(xiàn)了Map接口,還實現(xiàn)了Map接口的子接口java.util.SortedMap。支持對鍵有序地遍歷,使用時建議先用HashMap增加和刪除成員,最后從HashMap生成Tr
34、eeMap。public class TreeMap extends AbstractMap implements NavigableMap, Cloneable, java.io.Serializable/具體方法請查看API幫助文檔繼承關系:TreeMap類常用方法:TreeMap類中的較重要的方法:除了get()、put()、equals()、hashCode()、keySet()、values()、containsKey()、containsValue()等方法外,有comparator()、compare()、firstKey()、lastKey()、headMap()、subMap
35、()、tailMap()等。TreeMap類說明:鍵成員要求實現(xiàn)Comparable接口,或者使用Comparator構造TreeMap鍵成員一般為同一類型。hashCode()方法由于作為key的對象將通過計算其散列函數(shù)來確定與之對應的value的位置,因此任何作為key的對象都必須實現(xiàn)hashCode和equals方法。hashCode和equals方法繼承自根類Object,如果你用自定義的類當作key的話,要相當小心,按照散列函數(shù)的定義,如果兩個對象相同,即obj1.equals(obj2)=true,則它們的hashCode必須相同;但如果兩個對象不同,則它們的hashCode不一定
36、不同,如果兩個不同對象的hashCode相同,這種現(xiàn)象稱為沖突,沖突會導致操作哈希表的時間開銷增大,所以盡量定義好的hashCode()方法,能加快哈希表的操作。注意:在使用由HashMap類實現(xiàn)的Map集合時,需要重寫作為主鍵對象類的hashCode()方法前提要先重寫equals()方法。練習:請參見讀程序寫結果中程序14(Map和HashMap)上機實驗:創(chuàng)建一個Book類 :包含屬性:title(標題),使用構造方法進行初始化 重寫toString()方法,用以返回Title屬性的值 創(chuàng)建一個BookTest測試類,添加main方法,要求: 使用HashMap進行存儲,鍵為Book對象
37、的編號,值為Book對象 通過某一個編號獲取Book對象,并打印該Book對象的標題 讀程序寫結果程序1:importjava.util.*; publicclassArraysDemo publicstaticvoidmain(Stringargs) inttemp=3,5,7,9,1,2,6,8;/聲明一個整型數(shù)組 Arrays.sort(temp);/數(shù)組排序 System.out.print(排序后的數(shù)組); System.out.println(Arrays.toString(temp);/以字符串輸出數(shù)組 intpoint=Arrays.binarySearch(temp,3);/
38、檢索數(shù)據位置 System.out.println(元素3的位置在:+point); Arrays.fill(temp,3); /填充數(shù)組 System.out.print(數(shù)組填充:); System.out.println(Arrays.toString(temp); /以字符串輸出數(shù)組 程序2:import java.util.Arrays;public class Quest public static void main(String args) String colors = blue,red,green,yellow,orange; Arrays.sort(colors); Sy
39、stem.out.println(Arrays.deepToString(colors); int s2 = Arrays.binarySearch(colors, orange); int s3 = Arrays.binarySearch(colors, violet); System.out.println(s2+ +s3); 程序3:/ Using Java arrays.import java.util.Arrays;public class UsingArrays private int intArray = 1, 2, 3, 4, 5, 6 ;private double doub
40、leArray = 8.4, 9.3, 0.2, 7.9, 3.4 ;private int filledIntArray, intArrayCopy;/ 構造方法,初始化數(shù)組public UsingArrays() filledIntArray = new int10; / 創(chuàng)建10元素的int型數(shù)組,filledIntArray持有引用intArrayCopy = new intintArray.length;/創(chuàng)建含有6個int型元素的數(shù)組,intArrayCopy持有引用 / 輸出數(shù)組元素public void printArrays() System.out.print(double
41、Array: );for (double doubleValue : doubleArray)System.out.printf(%.1f , doubleValue);System.out.print(nintArray: );for (int intValue : intArray)System.out.printf(%d , intValue);System.out.print(nfilledIntArray: );for (int intValue : filledIntArray)System.out.printf(%d , intValue);System.out.print(ni
42、ntArrayCopy: );for (int intValue : intArrayCopy)System.out.printf(%d , intValue);System.out.println(n); / end method printArrayspublic int searchForInt(int value) / 在int型數(shù)組中查找元素return Arrays.binarySearch(intArray, value); public void printEquality() / 比較數(shù)組內容boolean b=Arrays.equals(intArray, intArray
43、Copy);System.out.printf(intArray %s intArrayCopyn, (b ? = : !=);b=Arrays.equals(intArray, intArrayCopy);System.out.printf(intArray %s filledIntArrayn, (b ? = : !=); / end method printEqualitypublic static void main(String args) UsingArrays usingArrays = new UsingArrays();usingArrays.printArrays();us
44、ingArrays.printEquality();int location = usingArrays.searchForInt(5);if (location = 0)System.out.printf(Found 5 at element %d in intArrayn, location);elseSystem.out.println(5 not found in intArray);location = usingArrays.searchForInt(8763);if (location = 0)System.out.printf(Found 8763 at element %d
45、in intArrayn,location);elseSystem.out.println(8763 not found in intArray); / end main程序4:import java.util.List;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class CollectionTest private static final String colors = MAGENTA, RED, WHITE, BLUE,CYAN ;private sta
46、tic final String removeColors = RED, WHITE, BLUE ;/ 創(chuàng)建 ArrayList, 向容器中添加colorspublic CollectionTest() List list = new ArrayList();List removeList = new ArrayList();/ 把colors數(shù)組中的元素添加到list列表中for (String color : colors)list.add(color);/ 把removeColor數(shù)組中的元素添加到removeList列表中for (String color : removeColors
47、)removeList.add(color);System.out.println(ArrayList: );/ 輸出列表內容for (int count = 0; count list.size(); count+)System.out.printf(%s , list.get(count);/使用泛型化后就不用強制類型轉換/ 把removeList列表中的內容從list列表中移除removeColors(list, removeList);System.out.println(nnArrayList after calling removeColors: );/ 輸出列表內容for (St
48、ring color : list)System.out.printf(%s , color); /從collection1中 移除 collection2 指定的內容 private void removeColors(Collection collection1,Collection collection2) / 獲得collection1的迭代器Iterator iterator = collection1.iterator();/ 如果仍有元素可以迭代,則返回 truewhile (iterator.hasNext() if (collection2.contains(iterator
49、.next()/如果此 collection2 包含指定的元素,則返回 trueiterator.remove();/從collection1中移除 public static void main(String args) new CollectionTest(); 程序5:import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;public class CollectionTest1 public static void main(String args)/定義字符串變量String a
50、=www.;String b=binzhou.;String c=jsjx;/創(chuàng)建一個可以放置String型數(shù)據的Collection對象引用list,Collection list=new ArrayList();list.add(a);list.add(b);/再定義一個Collection對象引用list2,用來放置String型的數(shù)據Collection list2=new ArrayList();/list列表中的元素全部添加到list2中,利用方法ArrayList類的addAll()list2.addAll(list);list2.add(c);/構造迭加器,實現(xiàn)遍歷Iterat
51、or it=list2.iterator();while(it.hasNext()String str=it.next();System.out.print(str);程序6:import java.util.*;public class LinkListOne public static void main(String args) LinkedList mylist = new LinkedList();mylist.add(It);/ 鏈表中的第一個節(jié)點。mylist.add(is);/ 鏈表中的第二個節(jié)點。mylist.add(a);/ 鏈表中的第三個節(jié)點。mylist.add(doo
52、r);/ 鏈表中的第四個節(jié)點。int number = mylist.size();/ 獲取鏈表的長度。for (int i = 0; i number; i+) String temp = (String) mylist.get(i);System.out.println(第 + i + 節(jié)點中的數(shù)據: + temp);程序7:public class LinkedListDemo public static void main(String args) LinkedList lnkList = new LinkedList(); lnkList.add(李四); lnkList.add(趙
53、六); / addFirst(Object)表示加到最前 lnkList.addFirst(張三); / addLast(Object)表示加到最后 lnkList.addLast(王五); / 下面顯示鏈表中的元素 System.out.println(lnkList); / 下面增加并顯示鏈表中的元素 lnkList.addLast(憨豆); System.out.println(lnkList); / 下面從鏈表中刪除一項 lnkList.removeFirst(); / 下面顯示鏈表中的元素 System.out.println(lnkList); 程序8:/Using method
54、toArray.import java.util.LinkedList;import java.util.Arrays;public class UsingToArray / 利用構造方法創(chuàng)建鏈表public UsingToArray() String colors = black, blue, yellow ;/定義數(shù)組LinkedList links = new LinkedList(Arrays.asList(colors);/返回一個受指定數(shù)組支持的固定大小的列表links.add(red);links.add(pink);links.add(3, green);links.addFi
55、rst(cyan);colors = links.toArray(new Stringlinks.size();System.out.println(colors: );for (String color : colors)System.out.println(color); public static void main(String args) new UsingToArray(); 程序9:/Using algorithm sort.import java.util.Collection;import java.util.List;import java.util.Arrays;impo
56、rt java.util.Collections;public class Sort1 private static final String suits = Hearts, Diamonds, Clubs,Spades ;/ 顯示數(shù)組元素public void printElements() List list = Arrays.asList(suits); / 生成列表/ 輸出列表System.out.printf(Unsorted array elements:n%sn, list);Collections.sort(list);/ 輸出列表System.out.printf(Sorte
57、d array elements:n%sn, list);public static void main(String args) Sort1 sort1 = new Sort1();sort1.printElements(); / end main / end class Sort1、程序10:package collections;import java.util.*;class AlgorithmExample1 public static void main(String args) List link = new ArrayList();link.add(new Integer(10
58、);link.add(new Integer(35);link.add(new Integer(23);link.add(new Integer(54);link.add(new Integer(36);Comparator cmp = Collections.reverseOrder();Collections.sort(link, cmp);Iterator it = link.iterator();System.out.println(逆序排序的列表為: );while (it.hasNext() System.out.println(it.next();System.out.print
59、ln(給定列表中的最大值為: + Collections.max(link);System.out.println(給定列表中的最小值為: + Collections.min(link);程序11:/ Using a Comparator object with algorithm sort.import java.util.List;import java.util.Arrays;import java.util.Collections;public class Sort2 private static final String suits = Hearts, Diamonds, Clubs
60、,Spades ;/ output List elementspublic void printElements() List list = Arrays.asList(suits); / create List/ output List elementsSystem.out.printf(Unsorted array elements:n%sn, list);/ sort in descending order(降序) using a comparatorCollections.sort(list, Collections.reverseOrder();/ output List eleme
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三農產品品質管理方案
- 數(shù)據挖掘技術在業(yè)務智能化中的應用作業(yè)指導書
- 2025年青海貨運從業(yè)資格證考試模擬試題及答案大全解析
- 2025年河北貨運從業(yè)資格證考試題技巧
- 2025年保山a2貨運從業(yè)資格證模擬考試
- 2025年遼寧貨運從業(yè)資格證考試資料
- 2025年伊春c1貨運上崗證模擬考試
- 2024年高中語文第四單元第13課宇宙的邊疆課時優(yōu)案1含解析新人教版必修3
- 粵教版道德與法治九年級上冊2.1.2《政府社會治理的主要職責》聽課評課記錄
- 初中班主任教師工作計劃
- GB/T 14258-2003信息技術自動識別與數(shù)據采集技術條碼符號印制質量的檢驗
- 政府資金項目(榮譽)申報獎勵辦法
- 最新如何進行隔代教育專業(yè)知識講座課件
- 當前警察職務犯罪的特征、原因及防范,司法制度論文
- 奧特萊斯專題報告(經典)-課件
- 《新制度經濟學》配套教學課件
- 計算機文化基礎單元設計-windows
- DNA 親子鑒定手冊 模板
- 深刻認識民航安全工作的五個屬性
- DB33T 1233-2021 基坑工程地下連續(xù)墻技術規(guī)程
- 運動技能學習與控制課件第六章注意與運動技能的控制
評論
0/150
提交評論