Tengo un SortedMap, ordenado de acuerdo con el orden natural de sus claves. ¿Puedo lanzar con seguridad su keySet() a un SortedSet, sin arriesgar una excepción de conversión no válida.¿Puede keySet() de SortedMap ser lanzado de manera segura a SortedSet?
Es decir, ¿arrojará el siguiente?
SortedMap<K, V> map = ...;
SortedSet<K> set = (SortedSet<K>) map.keySet();
Si la respuesta es "depende de la implementación de SortedMap", es esto en un mínimo de seguridad para un TreeMap?
Para todos los que escriban "no garantizados en la documentación", permítanme señalar que la documentación para el conjunto de claves SortedSet() dice "El iterador del conjunto devuelve las claves en orden ascendente". Entonces, aunque no es un "SortedSet", es un conjunto ordenado ... –
En la práctica, ** es ** un SortedSet. Pero, en teoría, mientras no se especifique, no tiene por qué (por ejemplo, se podría crear un nuevo SortedSet que no sea el conjunto de claves internas para la iteración; es cierto que esto sería estúpido). – assylias
Corrección: incluso en la práctica, no siempre es un Sortedset como se señala en una de las respuestas. – assylias