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