?? 12.說明.java
字號(hào):
============================================================================================
|| 標(biāo)志說明 ||
============================================================================================
=>生成
->子類
(I)接口 interface
(A)抽象類 abstract
(E)實(shí)際類 entity
============================================================================================
|| 主要內(nèi)容 ||
============================================================================================
1. Pattern,Matcher 匹配正則表達(dá)式
2. CrashJava.java 查詢存放地址
3. Vector =>Enumeration 向量
4. Hashtable =>Enumeration 散列表
5. BitSet 位集
6. Enumeration 枚舉
7. Iterator 反復(fù)器
8. Stack 堆棧,一種Vector
9. Properties 讀取ini文件
10.StreamTokenizer 文件流的分割器
11.StringTokenizer 字符串的分割器
12.ZIP 壓縮文件的生成方法
============================================================================================
|| 繼承關(guān)系 ||
============================================================================================
接口 接口 抽象類 實(shí)體類
----------------------------------------------------------------------------------------
(1) Object->Dictionary->Hashtable->Properties
(2) Map(I) =>Collection(I)
->AbstractMap(A) ->TreeMap 在一個(gè)“紅-黑”樹的基礎(chǔ)上實(shí)現(xiàn)。
查看鍵或者“鍵-值”對時(shí),它們會(huì)按固定的順序排列
最大的好處就是我們得到的是已排好序的結(jié)果
->HashMap 基于一個(gè)散列表實(shí)現(xiàn)(用它代替Hashtable)。
針對“鍵-值”對的插入和檢索,這種形式具有最穩(wěn)定的性能。
->WeakHashMap
->Hashtable [同 HashMap]
->SortedMap(I) ->TreeMap
(3) Collection(I) =>Iterator(I)
->AbstractCollection(A) ->AbstractList(A)
->AbstractSet(A)
->List(I) ->AbstractList(A) ->AbstractSequentialList(A) ->LinkedList 提供優(yōu)化的順序訪問性能,
效率地在列表中部進(jìn)行插入和刪除
隨機(jī)訪問時(shí),速度卻相當(dāng)慢,此時(shí)應(yīng)換用ArrayList
->Vector 刪除和插入快 ->Stack
->ArrayList 刪除和插入元素,速度稍慢[同 Vector,LinkedList]
->Set(I) ->AbstractSet(A) ->HashSet 用于除非常小的以外的所有Set
->TreeSet 由一個(gè)“紅黑樹”后推得到的順序Set
->SortedSet(I) ->TreeSet
(4) Iterator(I) ->ListIterator(I)
(5) List(I) =>ListIterator(I)
(6) utilities:Collection,Arrays 對數(shù)組直接操作的靜態(tài)函數(shù),提供了一個(gè)過載的sort()和binarySearch(),
(7) Comparable<->Comparator
============================================================================================
|| 測試 ||
============================================================================================
(1) 決定使用何種List:ArrayList 查詢較優(yōu),LinkedList 修改較優(yōu)
-----------------------------------------------
類型 獲取 反復(fù) 插入 刪除
ArrayList 110 270 1920 4780
LinkedList 1870 7580 170 110
(2) 決定使用何種Set: HashSet 較優(yōu)
-----------------------------------------------
類型 測試大小 添加 包含 反復(fù)
TreeSet 10 22.0 11.0 16.0
100 22.5 13.2 12.1
1000 31.1 18.7 11.8
HashSet 10 5.0 6.0 27.0
100 6.6 6.6 10.9
1000 7.4 6.6 9.5
(3) 決定使用何種Map:Map的大小對于性能的影響是最大的,首要的選擇應(yīng)該是 HashMap
------------------------------------------------
類型 測試大小 置入 取出 反復(fù)
Hashtable 100 7.7 7.7 16.5
1000 8.0 8.0 14.4
10 16.0 11.0 22.0
TreeMap 100 25.8 15.4 13.2 創(chuàng)建速度比其他兩種類型明顯快得多
1000 33.8 20.9 13.6
10 11.0 6.0 33.0
HashMap 100 8.2 7.7 13.7
1000 8.0 7.8 11.9
============================================================================================
|| 備注 ||
============================================================================================
(1) 集合(Collection):一組單獨(dú)的元素,通常應(yīng)用了某種規(guī)則。在這里,
一個(gè)List(列表)必須按特定的順序容納元素,
而一個(gè)Set(集)不可包含任何重復(fù)的元素。
相反,“包”(Bag)的概念未在新的集合庫中實(shí)現(xiàn),因?yàn)椤傲斜怼币烟峁┝祟愃频墓δ堋?(2) 映射(Map):一系列“鍵-值”對(這已在散列表身上得到了充分的體現(xiàn))。從表面看,這似乎應(yīng)該成為一個(gè)“鍵-值”對的“集合”,
但假若試圖按那種方式實(shí)現(xiàn)它,就會(huì)發(fā)現(xiàn)實(shí)現(xiàn)過程相當(dāng)笨拙。這進(jìn)一步證明了應(yīng)該分離成單獨(dú)的概念。另一方面,可以方便地查看Map的某個(gè)部分。
只需創(chuàng)建一個(gè)集合,然后用它表示那一部分即可。這樣一來,Map就可以返回自己鍵的一個(gè)Set、一個(gè)包含自己值的List或者包含自己“鍵-值”對的
一個(gè)List。和數(shù)組相似,Map可方便擴(kuò)充到多個(gè)“維”,毋需涉及任何新概念。只需簡單地在一個(gè)Map里包含其他Map(后者又可以包含更多的Map,以此類推)。
(3) 虛線框代表“接口”,
點(diǎn)線框代表“抽象”類,
而實(shí)線框代表普通(實(shí)際)類。
點(diǎn)線箭頭表示一個(gè)特定的類準(zhǔn)備實(shí)現(xiàn)一個(gè)接口(在抽象類的情況下,則是“部分”實(shí)現(xiàn)一個(gè)接口)。
雙線箭頭表示一個(gè)類可生成箭頭指向的那個(gè)類的對象。
(4) 接口:是最高的類,供其它類重載它定義的函數(shù)
抽象類:比接口類低,一定定義了一些功能
實(shí)際類:封裝了方法的可使用類
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -