2015-03-13 68 views
1

什麼是Java類定義泛型

class MyMap<K, V> implements Map<Comparable<K>, V> 

類定義中的意義?我不明白怎麼MyMap<K, V>可以是Map<Comparable<K>, V>MyMap需求KVMap需求Comparable<K>V

回答

3

有效實現你過分析的聲明。 K只是任何類型,MyMap實現Map<Comparable<K>, V>

[...]不知道如何MyMap<K, V>可以是Map<Comparable<K>, V>有效實施[...]

如果實現由Map<Comparable<K>, V>所需的方法就可以了。特別MyMap需要實現的方法有例如以下特徵:

public Set<Comparable<K>> keySet() { 
    ... 
} 

注意上面的方法聲明提出沒有限制的K。換句話說,類聲明不應與

class MyMap<K extends Comparable, V> implements Map<K, V> 

這意味着K必須Comparable混淆。

+0

這看起來很不錯。看到MyMap類的典型用法將會很有趣。作爲一個起點,考慮一下典型的Java成語: Map m = new HashMap (); 在上面,KeyType必須是可比較的。但是,使用MyMap,它不會。但是,您必須將其聲明爲: Map ,ValueType> m = new MyMap (); – 2015-03-13 13:19:27

+0

不知道我關注。密鑰在HashMap中不必具有可比性。 – aioobe 2015-03-13 17:24:10