我已經寫了一個TrieMap<V> implements Map<String,V>
類,它顯然是從字符串鍵入的。這工作正常。爲沒有鍵的映射實現entrySet
我想加強它與更一般的CharSequence
鍵。除了最後一個問題,我相信我已經實現了轉換,我無法創建K
類型的對象。
現在簽名現在必須成爲TrieMap<K extends CharSequence,V> implements Map<K,V>
。問題是,我相信你知道,TrieMap
實際上並不存儲原始密鑰。 (實際上這是它的主要價值之一,因此它通常佔用的空間比普通地圖少得多。)
要實現Set<Entry<K, V>> entrySet()
因此我必須以某種方式製造K
類型的對象。有什麼方法可以實現嗎?
@dfb:難點不是將鍵創建爲String實例。難點在於創建K型鍵,而不知道K是什麼。 – 2012-07-19 15:08:54
側面問題:在TrieMap實現Map '時,以下問題/答案的優點是什麼? –
dfb
2012-07-19 19:48:30
@dfb - 不確定你在問什麼,但工廠方法的好處在於創建者提供了創建密鑰的機制,因爲由於類型擦除,只有創建者知道正在使用哪種類型。我覺得現在有點像星際迷航中的VGer。 :) – OldCurmudgeon 2012-07-20 00:42:06