2015-03-18 10 views
8

Perché i metodi treeMap.entrySet() e treeMap.keySet() non restituiscono SortedSet? Potrei andare così lontano da dire che è un errore. Come per l'API, un Set è definito come non avendo un particolare ordine. Tuttavia, i set restituiti da TreeMap do hanno un ordine particolare.Non dovrebbe treeMap.entrySet() restituire un SortedSet?

+1

Cosa ti fa pensare che non restituisca un 'SortedSet' (credo che tu intendessi' TreeSet' lì)? –

+0

@RohitJain Questo è ciò che dice l'API. L'API –

+0

dice solo che restituirebbe la vista 'Set'. Ciò che l'effettiva implementazione di 'Set' restituisce non è lì, e non dovrebbe esserci. Questo è il dettaglio dell'implementazione. –

risposta

10

Penso che se hanno scritto l'interfaccia SortedMap ora, sia keySet che entrySet restituire SortedSet. Tuttavia, l'interfaccia SortedMap è stata introdotta in Java 1.2 prima che i tipi di ritorno covarianti fossero consentiti. Non possono modificarlo ora poiché ci saranno implementazioni di SortedMap per le quali keySet e entrySet restituiscono un Set ovvero non a SortedSet.

+0

Anche se non è un SortedSet, in effetti definisce che il Set restituito è in ordine ascendente, come definito nel javadoc dell'interfaccia SortedMap. – Robin

Problemi correlati