詞典的實現(1)--Map的底層實現

1,詞典是這樣的一種數據結構:它能根據給定的鍵(索引值,key)來查找其對應的值(value)是否存在,在JAVA中主要由java.util.HashMap來完成該功能。如電話本就是詞典的一個具體實例,其中名字做爲鍵,電話號碼做爲值。客戶端能夠經過構造一個電話原本進行查詢。本系列文章本身編程實現了Map這一數據結構,模擬實現了詞典的功能,並給出了詞典的兩個具體應用---①根據姓名查找電話號碼;②統計單詞的出現頻率html

2,ADT詞典接口DictionaryInterface.java的定義java

詞典接口定義了該詞典所具備的基本功能,如添加元素、查詢元素……這樣,具體的實現類經過implements該接口完成具體的電話本功能的實現。編程

詳細解釋看代碼註釋數組

DictionaryInterface.java代碼以下:數據結構

 1 package dictionary;
 2 
 3 import java.util.Iterator;
 4 
 5 public interface DictionaryInterface<K, V> {
 6     /*
 7      * Task: 將一個新元素插入詞典。若給定的鍵已在詞典中,則替換相應的值
 8      * @param key    新元素的的查找鍵
 9      * @param value 與鍵關聯的值對象
10      * @return    若新元素被插入到詞典中則返回null,若與key關聯的value被替換,則返回原來的value
11      */
12     public V add(K key, V value);
13     
14     /*
15      * Task: 從詞典中刪除一個指定的元素
16      * @param key    欲刪除的元素的key對象
17      * @return    返回與key關聯的value,若不存在這樣的對象則返回null
18      */
19     public V remove(K key);
20     
21     /*
22      * Task: 檢索與給定的鍵相關聯的值
23      * @param key    待檢索元素的查找鍵對象
24      * @return    與查找鍵對象相關聯的值,若不存在這樣的對象則返回null
25      */
26     public V getValue(K key);
27     
28     /*
29      * Task: 肯定一個指定的元素在不在詞典中
30      * @param key    待查找的元素的鍵對象
31      * @return 若key與詞典中的一個元素相關聯則返回true
32      */
33     public boolean contains(K key);
34     
35     /*
36      * Task: 建立一個迭代器遍歷詞典中全部的查找鍵
37      * @return 返回一個迭代器,提供對詞典中的鍵對象的順序訪問
38      */
39     public Iterator<K> getKeyIterator();
40     
41     /*
42      * Task: 建立一個迭代器遍歷詞典中全部的值
43      * @return 返回一個迭代器,提供對詞典中值的順序訪問
44      */
45     public Iterator<V> getValueIterator();
46     
47     public boolean isEmpty();//判斷詞典是否爲空
48     public boolean isFull();//判斷詞典是否滿
49     public int getSize();//返回詞典中當前元素(鍵-值二元組)個數
50     public void clear();//刪除詞典中全部的元素
51 }

 

參考資料:post

詞典的實現(2)-藉助順序表(數組)實現詞典學習

詞典的實現(3)--使用JAVA類庫ArrayList實現Map數據結構url

詞典的實現(4)-使用Hash方式來實現詞典spa

散列之HashTable學習code

相關文章
相關標籤/搜索