Autor Tema: ¿Es TreeSet un tipo List? Conocer subtipos de interface y supertipos clase Java  (Leído 1270 veces)

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Trataremos de responder aquí a la pregunta planteada ¿Es TreeSet o HashSet un tipo de List en Java?

Para saber las clases que son de supertipo List puedes escribir en google "List api java 11" (suponiendo que estás usando versión de java 11) y acceder a la documentación del api de Java https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/List.html

Ahí al principio verás las clases que tienen supertipo List

All Known Implementing Classes: AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector

Estas son las clases de tipo List, por tanto ni TreeSet ni HashSet son de tipo List.

Si quieres saber cuál es el supertipo de TreeSet puedes escribir en google "treeset api java 11" y acceder a https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/util/TreeSet.html

Ahí te indica la herencia de TreeSet y los supertipos a los que pertenece TreeSet

All Implemented Interfaces: Serializable, Cloneable, Iterable<E>, Collection<E>, NavigableSet<E>, Set<E>, SortedSet<E>

En este caso, con el enfoque con el que estamos trabajando, lo que interesa aquí es que TreeSet es un tipo de Set (conjunto). No aparece que implemente la interface List, por lo tanto no es un tipo de List.

Esta forma de conocer los supertipos, tanto desde "arriba hacia abajo" (buscando List y viendo qué clases la implementan) o desde "abajo hacia arriba" (buscando una clase como TreeSet y viendo qué interfaces implementa) puede ser muy útil para la programación Java.

Nota: obviamente, si un método nos pide un tipo List, no podemos pasarle un TreeSet porque un TreeSet no es un tipo de List.

« Última modificación: 09 de Febrero 2022, 19:15 por Mario R. Rancel »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".