En Java 21, las colecciones secuenciadas (SequencedCollection, SequencedSet, SequencedMap) introducen una forma más intuitiva de trabajar con colecciones ordenadas, permitiendo acceso y manipulación eficiente de elementos en los extremos (inicio y final). Estas interfaces amplían las colecciones existentes como listas, conjuntos y mapas.
Las interfaces de colecciones secuenciadas en Java 21 proporcionan métodos para agregar, obtener y eliminar elementos de manera ordenada en ambas direcciones (inicio y fin). Esto mejora la manipulación de estructuras como listas y mapas, facilitando operaciones como el acceso a elementos extremos sin necesidad de conversiones adicionales.
SequencedCollection<E>: Extiende Collection<E> e introduce métodos para manipular elementos en los extremos.
SequencedSet<E>: Extiende Set<E> con métodos de acceso secuencial.
SequencedMap<K, V>: Extiende Map<K, V> con acceso secuencial a claves y valores.
| Método | Descripción |
|---|---|
addFirst(E element)
|
Agrega un elemento al inicio de la colección. |
addLast(E element)
|
Agrega un elemento al final de la colección. |
getFirst()
|
Obtiene el primer elemento de la colección. |
getLast()
|
Obtiene el último elemento de la colección. |
removeFirst()
|
Elimina el primer elemento de la colección. |
removeLast()
|
Elimina el último elemento de la colección. |
reversed()
|
Devuelve una vista invertida de la colección. |
SequencedCollection con ArrayList
import java.util.ArrayList;
import java.util.SequencedCollection;
public class Main {
public static void main(String[] args) {
SequencedCollection<String> lista = new ArrayList<>();
lista.addFirst("Inicio");
lista.addLast("Fin");
System.out.println(lista.getFirst()); // Inicio
System.out.println(lista.getLast()); // Fin
lista.removeFirst();
lista.removeLast();
}
}
SequencedMap con LinkedHashMap
import java.util.LinkedHashMap;
import java.util.SequencedMap;
public class Main {
public static void main(String[] args) {
SequencedMap<Integer, String> mapa = new LinkedHashMap<>();
mapa.putFirst(1, "Uno");
mapa.putLast(2, "Dos");
System.out.println(mapa.getFirstKey()); // 1
System.out.println(mapa.getLastKey()); // 2
mapa.removeFirst();
mapa.removeLast();
}
}
Para más información, consulta la documentación oficial de Java 21.
Jorge García
Fullstack developer