Iniciar sesión

Set: HashSet y TreeSet en Java

Colecciones sin duplicados

Unidad: Colecciones Lección 2 de 4 Gratis
🎯
Set: HashSet y TreeSet
Un Set es una colección que NO permite duplicados: si agregas un elemento que ya existe (según equals()), simplemente se ignora.
Set nombres = new HashSet<>(); nombres.add("Ana"); nombres.add("Ana"); // se ignora, ya existe System.out.println(nombres.size()); // 1
HashSet no garantiza ningún orden particular; es la implementación más rápida en general.
TreeSet mantiene los elementos ordenados automáticamente (orden natural o con Comparator).

Pon a prueba lo que aprendiste

Concepto

¿Qué pasa si agregas un elemento duplicado a un Set?

  1. ASe agrega igual, quedando duplicado
  2. BLanza una excepción
  3. CSe ignora silenciosamente, el Set no cambia
  4. DReemplaza el elemento anterior
Ver respuesta
C) Se ignora silenciosamente, el Set no cambia Add() de un duplicado devuelve false y no modifica el Set.
HashSet vs TreeSet

¿Qué garantiza TreeSet que HashSet no garantiza?

  1. AQue se puedan agregar null
  2. BQue los elementos queden ordenados automáticamente
  3. CAcceso por índice
  4. DQue no haya duplicados (ambos lo garantizan)
Ver respuesta
B) Que los elementos queden ordenados automáticamente TreeSet mantiene orden; HashSet no garantiza ningún orden en particular.
equals/hashCode

¿De qué depende que un HashSet detecte correctamente los duplicados de objetos personalizados?

  1. ANo depende de nada, siempre funciona
  2. BDe que la clase tenga equals() y hashCode() bien implementados y consistentes
  3. CDe que la clase sea abstract
  4. DDe usar TreeSet en vez de HashSet
Ver respuesta
B) De que la clase tenga equals() y hashCode() bien implementados y consistentes HashSet usa hashCode() y equals() para decidir si un elemento ya existe.

🎯 Practica esta lección completa

Ejercicios de completar código, ordenar bloques y respuesta libre. Ganas XP y mantienes tu racha.

Practicar gratis, sin registrarte Entras como invitado directo a esta lección. Sin tarjeta.