




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Java集合類Java集合類collections framework概述所有抽象出來的數(shù)據(jù)結(jié)構(gòu)和操作統(tǒng)稱為collections framework框架。Java程序員不必考慮數(shù)據(jù)結(jié)構(gòu)的算法細節(jié),只需要定義具體應(yīng)用的數(shù)據(jù)結(jié)構(gòu)實體。數(shù)據(jù)結(jié)構(gòu)上的方法也用不著程序員去寫,用系統(tǒng)的方法就行了,系統(tǒng)的方法總比一般程序員編的要快所有這些framework都在java.util包中9/27/20222collections framework概述所有抽象出來的collections framework概述在Java 2的Collections框架中,主要包括兩個接口及其擴展和實現(xiàn)類:Collection接
2、口和Map接口 Collection是集合接口Collections是集合類Collection接口:Set不允許重復List可以有重復元素9/27/20223collections framework概述在Java 2集合類說明 CollectionListLinkedListArrayListVectorStackSetMapHashtableHashMapWeakHashMap 9/27/20224集合類說明 CollectionListLinkeJava類庫中具體的集合(部分)9/27/20225Java類庫中具體的集合(部分)9/26/20225Collection接口Collect
3、ion API提供“集合”的功能Collection API包含下述接口Collection: 將一組對象以集合元素的形式組織到一起,在其子接口中分別實現(xiàn)不同的組織方式Set: Collection的子接口,不記錄元素的保存順序,且不允許有重復元素List: Collection的子接口,記錄元素的保存順序,且允許有重復元素9/27/20226Collection接口Collection API提供“集Collection接口定義了集合的基本行為,一個Collection的實現(xiàn)類的實例能夠:存放一個元素增加/刪除一個元素查找一個元素是否在此集合中計算此集合的元素數(shù)目Collection沒有約束
4、元素的具體類型(是否為空也未規(guī)定),元素的順序,元素是否可重復部分Collection是整齊的(ordered)(注意,整齊的并不是一定是一定要經(jīng)過排序的,即不一定是sorted).這樣的Collection的元素之間在邏輯上是一個接一個(one by one),即可以得到一個元素的下一個元素的引用.這些元素可以是排序的(sorted,元素的次序由自然順序或者規(guī)定的順序排列)也可以是未排序的(unsorted,元素順序由插入的順序決定) java.util.List接口繼承Collection接口定義這一類Collection部分Collection要求無重復的元素,稱之為Set,java.u
5、til.Set接口繼承Collection來定義這一類Collection9/27/20227Collection接口定義了集合的基本行為,一個ColleCollection 層次結(jié)構(gòu)Collection+add(element : Object) : boolean+remove(element : Object) : boolean+size() : int+isEmpty() : boolean+contains(element : Object) : boolean+iterator() : IteratorSetHashSetListArrayListVectorLinkedList
6、9/27/20228Collection 層次結(jié)構(gòu)+aCollectionArrayList非常象Vector ,它實現(xiàn)了可變長的數(shù)組。而LinkedList 則有些不同,它是List的鏈表實現(xiàn)。LinkedList可以成為堆棧,隊列或者雙向鏈表.9/27/20229CollectionArrayList非常象Vector ,數(shù)組列表ArrayList在編程中常常會遇到需要動態(tài)操縱數(shù)組,比如在運行時增加和刪除數(shù)組元素,而且有時在編譯時又不想確定數(shù)組大小希望它可以動態(tài)伸縮,在java中解決這一問題的方法是使用java.util包中的ArrayList類 ArrayList是List接口的一個可變
7、長數(shù)組實現(xiàn)。 9/27/202210數(shù)組列表ArrayList在編程中常常會遇到需要動態(tài)操縱數(shù)組數(shù)組列表ArrayListpublic int size();/返回列表中的元素個數(shù)public Object get(int index);/返回指定位置的元素public void set(int index, Object obj);/設(shè)置指定位置元素public void add(Object obj);/在列表末尾增加元素public void add(int index, Object obj);/在列表指定位置插入元素public void clear();/刪除列表中所有元素publ
8、ic void remove(int index);/刪除列表中指定位置元素元素public void contains(Object obj);/判斷列表中指定對象是否存在9/27/202211數(shù)組列表ArrayListpublic int size()ArrayList示例(ArrayListExample)public class ArrayListExample public static void main( String args ) ArrayList al = new ArrayList(); / Create a new ArrayListfor( int i=0; i10;
9、 i+ ) al.add( new Integer( i ) ); / Add Items to the array list for( int i=0; ial.size(); i+ ) System.out.println( i + = + al.get( i ) ); al.remove( 5 );al.set( 5, new Integer( 66 ) );for( Iterator i=al.iterator(); i.hasNext(); ) Integer integer = ( Integer )i.next(); System.out.println( integer );
10、9/27/202212ArrayList示例(ArrayListExample)pA List Exampleimport java.util.*public class ListExample public static void main(String args) List list = new ArrayList();list.add(one);list.add(second);list.add(3rd);list.add(new Integer(4);list.add(new Float(5.0F);list.add(second); / duplicate, is addedlist
11、.add(new Integer(4); / duplicate, is addedSystem.out.println(list);Output: one, second, 3rd, 4, 5.0, second, 49/27/202213A List Exampleimport java.utilVector和ArrayList區(qū)別要回答這個問題不能一概而論,有時候使用Vector比較好;有時是ArrayList,有時候這兩個都不是最好的選擇。你別指望能夠獲得一個簡單肯定答案,因為這要看你用它們干什么。Vector類似于ArrayList.。所有從API的角度來看這兩個類非常相似。但他們之
12、間也還是有一些主要的區(qū)別的。同步性(jdk 1.4)Vector是同步的。這個類中的一些方法保證了Vector中的對象是線程安全的。而ArrayList則是異步的,因此ArrayList中的對象并不是線程安全的。因為同步的要求會影響執(zhí)行的效率,所以如果你不需要線程安全的集合那么使用ArrayList是一個很好的選擇,這樣可以避免由于同步帶來的不必要的性能開銷。數(shù)據(jù)增長從內(nèi)部實現(xiàn)機制來講ArrayList和Vector都是使用數(shù)組(Array)來控制集合中的對象。當你向這兩種類型中增加元素的時候,如果元素的數(shù)目超出了內(nèi)部數(shù)組目前的長度它們都需要擴展內(nèi)部數(shù)組的長度,Vector缺省情況下自動增長原
13、來一倍的數(shù)組長度,ArrayList是原來的50%,所以最后你獲得的這個集合所占的空間總是比你實際需要的要大。所以如果你要在集合中保存大量的數(shù)據(jù)那么使用Vector有一些優(yōu)勢,因為你可以通過設(shè)置集合的初始化大小來避免不必要的資源開銷。9/27/202214Vector和ArrayList區(qū)別要回答這個問題不能一概而Vector和ArrayList區(qū)別使用模式在ArrayList和Vector中,從一個指定的位置(通過索引)查找數(shù)據(jù)或是在集合的末尾增加、移除一個元素所花費的時間是一樣的,這個時間我們用O(1)表示。但是,如果在集合的其他位置增加或移除元素那么花費的時間會呈線形增長:O(n-i),
14、其中n代表集合中元素的個數(shù),i代表元素增加或移除元素的索引位置。為什么會這樣呢?因為在進行上述操作的時候集合中第i和第i個元素之后的所有元素都要執(zhí)行位移的操作。這一切意味著什么呢?這意味著,你只是查找特定位置的元素或只在集合的末端增加、移除元素,那么使用Vector或ArrayList都可以。如果是其他操作,你最好選擇其他的集合操作類。比如,LinkedList集合類在增加或移除集合中任何位置的元素所花費的時間都是一樣的?O(1),但它在索引一個元素的使用缺比較慢O(i),其中i是索引的位置.使用ArrayList也很容易,因為你可以簡單的使用索引來代替創(chuàng)建iterator對象的操作。Link
15、List也會為每個插入的元素創(chuàng)建對象,所有你要明白它也會帶來額外的開銷。9/27/202215Vector和ArrayList區(qū)別使用模式9/26/202Set 接口(例:SetTest)Set 接口繼承 Collection 接口,而且它不允許集合中存在重復項,每個具體的 Set 實現(xiàn)類依賴添加的對象的 equals()方法來檢查獨一性。Set接口沒有引入新方法,所以Set就是一個Collection,只不過其行為不同。不能包含重復值,兩個元素是否重復的依據(jù)是a.equals(b).特例:因此最多只允許一個null存在不能按照索引訪問,因為Set的儲存順序不是有序的Set的實現(xiàn)類往往有更快的
16、對象操作(增加刪除)速度,如: ArrayList查找一個對象是否存在于List中,需要遍歷,而HashSet只根據(jù)哈希算法進行快速的查找(HashSet元素的儲存不是有序的, 9/27/202216Set 接口(例:SetTest)Set 接口繼承 CollSet的實現(xiàn)類HashSet允許插入最多一個null值不保證元素的順序與插入的順序一致,也不能按索引訪問.通過將插入的元素分成一束一束,達到更快的數(shù)據(jù)操作功能實現(xiàn)原理,是利用了一個HashMap實例,以每個元素為key如果儲存元素的分布是均勻的,增刪查的恒定,且比較高.加入Set中的元素應(yīng)該重載Object.hashCode()和Obje
17、ct.equals()方法(所有與哈希表有關(guān)的類都應(yīng)該重載)HashSet是線程不安全的. 如需要同步,用Collections. synchronizedSE(Setset)方法創(chuàng)建一個Set適用場合:需要儲存大量的不可重復元素集合,頻繁的增刪操作,且不需要記錄插入時順序.9/27/202217Set的實現(xiàn)類HashSet允許插入最多一個null值9/2Set 接口(例:SetTest)HashSet h = new HashSet();h.add(1st);h.add(2nd);h.add(new Integer(3);h.add(new Double(4.0);h.add(2nd); /
18、 重復元素, 未被加入h.add(new Integer(3); / 重復元素, 未被加入9/27/202218Set 接口(例:SetTest)HashSet h = HashSetHashSet繼承AbstractSet并且實現(xiàn)Set接口。它創(chuàng)建一個類集,該類集使用散列表進行存儲。正像大多數(shù)讀者很可能知道的那樣,散列表通過使用稱之為散列法的機制來存儲信息。在散列(hashing)中,一個關(guān)鍵字的信息內(nèi)容被用來確定唯一的一個值,稱為散列碼(hashcode)。而散列碼被用來當做與關(guān)鍵字相連的數(shù)據(jù)的存儲下標。關(guān)鍵字到其散列碼的轉(zhuǎn)換是自動執(zhí)行的?你看不到散列碼本身。你的程序代碼也不能直接索引散列
19、表。散列法的優(yōu)點在于即使對于大的集合,它允許一些基本操作如add( ),contains( ),remove( )和size( )方法的運行時間保持不變。9/27/202219HashSetHashSet繼承AbstractSet并且實HashSetHashSet( )構(gòu)造一個默認的散列集合HashSet(Collection c)用c中的元素初始化散列集合HashSet(int capacity)用capacity初始化散列集合的容量HashSet(int capacity, float fillRatio)第四種形式用它的參數(shù)初始化散列集合的容量和填充比(也稱為加載容量)。填充比必須介于0
20、.0與1.0之間,它決定在散列集合向上調(diào)整大小之前,有多少能被充滿。具體的說,就是當元素的個數(shù)大于散列集合容量乘以它的填充比時,散列集合被擴大。對于沒有獲得填充比的構(gòu)造函數(shù),默認使用0.75.9/27/202220HashSetHashSet( )構(gòu)造一個默認的散列集合HashSet(例 )HashSet沒有定義任何超過它的超類和接口提供的其他方法。重要的是,注意散列集合并沒有確保其元素的順序,因為散列法的處理通常不讓自己參與創(chuàng)建排序集合。如果需要排序存儲,另一種類集TreeSet將是一個更好的選擇。9/27/202221HashSet(例 )HashSet沒有定義任何超過它的超類A Set
21、Exampleimport java.util.*;public class SetExample public static void main(String args) Set set = new HashSet();set.add(one);set.add(second);set.add(3rd);set.add(new Integer(4);set.add(new Float(5.0F);set.add(second); / duplicate, not addedset.add(new Integer(4); / duplicate, not addedSystem.out.prin
22、tln(set);/Output:one, second, 5.0, 3rd, 4HashSet以哈希表形式存放,操作速度很快9/27/202222A Set Exampleimport java.util.Iterator接口Iterator接口定義了對Collection類型對象中所含元素的遍歷等增強處理功能可以通過Collection接口中定義的iterator()方法獲得一個對應(yīng)的Iterator(實現(xiàn)類)對象Set (實現(xiàn)類)對象對應(yīng)的Iterator仍然是無序的List(實現(xiàn)類)對象對應(yīng)的ListIterator對象可以實現(xiàn)對所含元素的雙向遍歷: 使用next()方法和previo
23、us()方法9/27/202223Iterator接口Iterator接口定義了對CollecIterator接口層次Iterator+hasNext() : boolean+next() : object+remove() ListIterator+hasPrevious() : boolean+previous() : Object+add(element : Object)+set(element : Object) 9/27/202224Iterator接口層次+hasNIterator接口Iterator:提供對所有集合(Collection)進行遍歷的接口對Collection提供
24、一個統(tǒng)一的遍歷接口是原Collection的一個視圖,故在進行遍歷時對應(yīng)Collection中元素的改變會影響Iterator。與舊版本遍歷Enumeration的區(qū)別:Iterator可以在遍歷時刪除對應(yīng)Collection中的元素Iterator有更好的方法名Enumeration已過時不同的Collection產(chǎn)生Iterator產(chǎn)生的效率是不同的,ArrayList的遍歷應(yīng)該使用索引List list = new ArrayList();Iterator elements = list.iterator();while(elements.hasNext() System.out.pri
25、ntln(elements.next();9/27/202225Iterator接口Iterator:提供對所有集合(ColIterator接口boolean hasNext( ) 如果存在更多的元素,則返回true,否則返回falseObject next( ) 返回下一個元素。如果沒有下一個元素,則引發(fā)NoSuchElementException異常void remove( ) 刪除當前元素,如果試圖在調(diào)用next( )方法之后,調(diào)用remove( )方法,則引發(fā)IllegalStateException異常9/27/202226Iterator接口boolean hasNext( ) 9
26、Iterator接口hasPrevious( ) 如果存在前一個元素,則返回true;否則返回falseint nextIndex( ) 返回下一個元素的下標,如果不存在下一個元素,則返回列表的大小Object previous( ) 返回前一個元素,如果前一個元素不存在,則引發(fā)一個NoSuchElementException異常int previousIndex( ) 返回前一個元素的下標,如果前一個元素不存在,則返回-1void set(Object obj) 將obj賦給當前元素。這是上一次調(diào)用next( )方法或previous( )方法最后返回的元素void add(Object o
27、bj) 將obj插入列表中的一個元素之后,該元素在下一次調(diào)用next( )方法時,被返回9/27/202227Iterator接口hasPrevious( ) 如果存在前Iterator next()對于a,b,c,d,e這樣一個5個元素的序列,有6個插入位置,每次next()是由一個插入位置移動到下一個插入位置,而不是元素的位置本身9/27/202228Iterator next()對于a,b,c,d,e這樣一個Iterator接口在通過迭代函數(shù)訪問類集之前,必須得到一個迭代函數(shù)。每一個Collection類都提供一個iterator( )函數(shù),該函數(shù)返回一個對類集頭的迭代函數(shù)。通過使用這個
28、迭代函數(shù)對象,可以訪問類集中的每一個元素,一次一個元素。通常,使用迭代函數(shù)循環(huán)通過類集的內(nèi)容,步驟如下:9/27/202229Iterator接口在通過迭代函數(shù)訪問類集之前,必須得到一個Iterator接口1. 通過調(diào)用類集的iterator( )方法獲得對類集頭的迭代函數(shù)。2. 建立一個調(diào)用hasNext( )方法的循環(huán),只要hasNext( )返回true,就進行循環(huán)迭代。3. 在循環(huán)內(nèi)部,通過調(diào)用next( )方法來得到每一個元素。對于執(zhí)行List的類集,也可以通過調(diào)用ListIterator來獲得迭代函數(shù)。正如上面解釋的那樣,列表迭代函數(shù)提供了前向或后向訪問類集的能力,并可讓你修改元素
29、。否則,ListIterator如同Iterator功能一樣。9/27/202230Iterator接口1. 通過調(diào)用類集的iterator( Iterator接口import java.util.*;class HashSetTest public static void main(String args) HashSet hs = new HashSet();/ hs.add(one);/ hs.add(two);/ hs.add(three); / hs.add(one);hs.add(new Student1(1, zhangsan);hs.add(new Student1(2, li
30、si);hs.add(new Student1(3, wangwu);hs.add(new Student1(1, zhangsan);Iterator it = hs.iterator();while (it.hasNext() System.out.println(it.next();9/27/202231Iterator接口import java.util.*;9Iterator接口class Student1 int num;String name;Student1(int num, String name) this.num = num; = name;public
31、 int hashCode() return num * name.hashCode();public boolean equals(Object o) Student1 s = (Student1) o;return num = s.num & name.equals();public String toString() return num + : + name; 9/27/202232Iterator接口class Student1 9/26Iterator作為返回值class IterTest31 public Iterator tt() List aa = new Arr
32、ayList();aa.add(new Person(w1, 1);aa.add(new Person(w2, 1);aa.add(new Person(w3, 1);aa.add(new Person(w4, 1);aa.add(new Person(w5, 1);Iterator it = aa.iterator();System.out.println(-);System.out.println(aa);return it;public static void main(String argc) IterTest31 itt = new IterTest31();Iterator it
33、= itt.tt(); while(it.hasNext()Person p1 = (Person)it.next();System.out.println(p1); 9/27/202233Iterator作為返回值class IterTest31 多次調(diào)用對象xxx.iterator()獲取的Iteratorclass IterTest41 public Iterator tt() List aa = new ArrayList();aa.add(new Person(w1, 1);aa.add(new Person(w2, 1);aa.add(new Person(w3, 1);aa.ad
34、d(new Person(w4, 1);aa.add(new Person(w5, 1);Iterator it = aa.iterator();while(it.hasNext()Person p1 = (Person)it.next();System.out.println(p1);if(p1.getName().equals(w3)System.out.println(-);Iterator it11 = aa.iterator();if (it11.hasNext()System.out.println(it11.next();System.out.println(-);System.
35、out.println(aa);return it;public static void main(String argc) IterTest41 itt = new IterTest41();Iterator it = itt.tt();9/27/202234多次調(diào)用對象xxx.iterator()獲取的IteratoConcurrentModificationException異常獲取疊代器后通過Connection接口的實現(xiàn)類增加刪除數(shù)據(jù)通過疊代器自身增加刪除數(shù)據(jù)9/27/202235ConcurrentModificationExceptio映射(map) 映射(map)是一個存儲關(guān)鍵
36、字和值的關(guān)聯(lián)或者說是關(guān)鍵字/值對的對象。給定一個關(guān)鍵字,可以得到它的值。關(guān)鍵字和值都是對象。關(guān)鍵字必須是唯一的。但值是可以被復制的。有些映射可以接收null關(guān)鍵字和null值。而有的則不行。Map是一個維護一組”鍵-值”映射的類(map keys to values)(這里的key,value全部都是引用類型)一個Map中key的值是唯一的,不重復 (如,不要用員工姓名作為key)一個Map中一個key只能對應(yīng)一個value(可以為空),但一個value可以有多個key與之對應(yīng)Map能讓你通過key快速查找到相應(yīng)的對象并獲得它對應(yīng)的value的引用(如存儲員工資料并用員工ID作為key來查找某
37、一員工的信息)9/27/202236映射(map) 映射(map)是一個存儲關(guān)鍵字和值的關(guān)聯(lián)或者HashMapHashMap類使用散列表實現(xiàn)Map接口。這允許一些基本操作如get( )和put( )的運行時間保持恒定,即便對大型集合,也是這樣的。HashMap( )構(gòu)造一個默認的散列映射HashMap(Map m)用m的元素初始化散列映射HashMap(int capacity)將散列映射的容量初始化為capacityHashMap(int capacity, float fillRatio)用它的參數(shù)同時初始化散列映射的容量和填充比。容量和填充比的含義與前面介紹的HashSet中的容量和填充
38、比相同。9/27/202237HashMapHashMap類使用散列表實現(xiàn)Map接口。這允Map接口,HashMap 類Map接口是Dictionary類的替代品。HashMap是以哈希表的形式存儲鍵值對,速度快。9/27/202238Map接口,HashMap 類Map接口是DictionarHashMap HashMap實現(xiàn)Map并擴展AbstractMap.它本身并沒有增加任何新的方法。應(yīng)該注意的是散列映射并不保證它的元素的順序。因此,元素加入散列映射的順序并不一定是它們被迭代函數(shù)讀出的順序。9/27/202239HashMap HashMap實現(xiàn)Map并擴展AbstracHashMap
39、 import java.util.*;class HashMapTest public static void printElements(Collection c) Iterator it = c.iterator();while (it.hasNext() System.out.println(it.next();public static void main(String args) HashMap hm = new HashMap();hm.put(one, zhangsan);hm.put(two, lisi);hm.put(three, wangwu);System.out.pr
40、intln(hm.get(one);System.out.println(hm.get(two);System.out.println(hm.get(three);Set keys = hm.keySet();System.out.println(Key:);printElements(keys);Collection values = hm.values();System.out.println(Value:);printElements(values);Set entry = hm.entrySet();/printElements(entry);Iterator it = entry.i
41、terator();while (it.hasNext() Map.Entry me = (Map.Entry) it.next();System.out.println(me.getKey() + : + me.getValue();9/27/202240HashMap import java.util.*;9/2HashMapHashMap類:實現(xiàn)Map接口及它的它的所有可選操作。允許空key和空value.類似Hashtable,但Hashtable是線程安全的,且不允許空key和空value.不保證元素的順序基本元素操作(put and get)速度恒定。(前提是各“桶”內(nèi)分布的元素是
42、均勻的)線程不安全9/27/202241HashMapHashMap類:9/26/202241 HashSet 和 HashMapHashMap可以看作三個視圖:key的Set,value的Collection,Entry的Set。 這里HashSet就是其實就是HashMap的一個視圖。HashSet內(nèi)部就是使用Hashmap實現(xiàn)的,和Hashmap不同的是它不需要Key和Value兩個值。往hashset中插入對象其實只不過是內(nèi)部做了public boolean add(Object o) return map.put(o, PRESENT)=null; HashMap為散列映射,它是基于
43、hash table的一個實現(xiàn),它可在常量時間內(nèi)安插元素,或找出一組key-value pair.HashSet為散列集,它把查找時間看的很重要,其中所有元素必須要有hashCode()9/27/202242 HashSet 和 HashMapHashMap可以看作三Dictionary和Hashtable類Dictionary類提供了根據(jù)關(guān)鍵字查值的功能。Dictionary是個abstract的類,因此我們不直接使用它。直接使用的一般是Hashtable類。Hashtable繼承了dictionary類,稱為哈希表類??焖賹ぶ返?/27/202243Dictionary和Hashtable
44、類DictionarHashtable類如果要取得并顯示哈希表中所有記錄值,應(yīng)該用以下程序段Enumeration enum=table.elements() ;while(enum.hasMoreElements() )show(Found Elements(not key): +enum.nextElement() );其中的table.elements 取得的是所有哈希表中的對象如果要取得并顯示哈希表中所有關(guān)鍵字的值,就應(yīng)該這么做Enumeration enum1=table.keys() ;while(enum1.hasMoreElements() )show(Key is -+enu
45、m1.nextElement() );其中的table.keys 取得哈希表中所有關(guān)鍵字的值9/27/202244Hashtable類如果要取得并顯示哈希表中所有記錄值,應(yīng)該Hashtable (注意不是HashTable)import java.util.*;class HashTableTest1 public Hashtable tt() try Hashtable mm = new Hashtable();mm.put(w1, new Person(w1, 11);mm.put(w2, new Person(w2, 11);mm.put(w3, new Person(w3, 11);m
46、m.put(w4, new Person(w4, 11);/* * mm.put(null,sdfds); mm.put(w3,null); Enumeration */return mm; catch (Exception e) e.printStackTrace();return null;public static void main(String argc) HashTableTest1 htt = new HashTableTest1();Hashtable mm = htt.tt();/ 可以采用Map的 keySet(),values(),entrySet()方法來訪問Hasht
47、able/* * Set ss = mm.keySet(); Iterator ii = ss.iterator(); * while(ii.hasNext() System.out.println(ii.next(); */ 也可以用早期提供的Enumeration訪問/elements()返回value的,keys()返回key的Enumeration , values()返回values的CollectionEnumeration bb = mm.elements();while (bb.hasMoreElements() System.out.println(-);Object o = bb.nextElement();System.out.println(o);if (o instanceof Person) Person p1 = (Person) o;System.out.println(name -: + p1.getName();System.out.println(age -: + p1.getAge();Enumeration kk = mm.keys();while(kk.hasMoreElements()Syste
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國工業(yè)制動器行業(yè)市場全景分析及投資前景展望報告
- 自適應(yīng)教育行業(yè)市場深度研究及投資戰(zhàn)略規(guī)劃報告
- 私人拆遷合同范本
- 2025年節(jié)日燈外殼塑料制品行業(yè)深度研究分析報告
- 廚房安裝承攬合同范本
- 鍋爐付款合同范本
- 2025年中國火電機組關(guān)鍵閥門行業(yè)市場深度分析及發(fā)展前景預(yù)測報告
- 管網(wǎng)施工合同范本
- 離心風機軸承箱項目可行性研究報告
- 2025年特種燈生產(chǎn)線項目投資可行性研究分析報告
- 網(wǎng)絡(luò)營銷講義網(wǎng)絡(luò)營銷產(chǎn)品策略課件
- 《小型混凝土預(yù)制件標準化生產(chǎn)管理辦法》
- 六年級上冊英語教案-Culture 2 Going Green 第二課時 廣東開心英語
- 警察叔叔是怎樣破案的演示文稿課件
- 青年教師個人成長檔案
- 2021譯林版高中英語選擇性必修三課文翻譯
- 2022年華中科技大學博士研究生英語入學考試真題
- 《網(wǎng)店運營與管理》整本書電子教案全套教學教案
- 打印版 《固體物理教程》課后答案王矜奉
- 中考《紅星照耀中國》各篇章練習題及答案(1-12)
- Q∕GDW 11612.43-2018 低壓電力線高速載波通信互聯(lián)互通技術(shù)規(guī)范 第4-3部分:應(yīng)用層通信協(xié)議
評論
0/150
提交評論