Java : LinkedHashMap con ejemplos

LinkedHashMap (Java SE 23 & JDK 23) en Java con ejemplos.
Encontrará muestras de código para la mayoría de los métodos LinkedHashMap<K,V>.

Nota :


Summary

Implementación de la interfaz Map en forma de tabla hash y lista enlazada, con un orden de encuentro bien definido. Esta implementación se diferencia de HashMap en que mantiene una lista doblemente enlazada que recorre todas sus entradas. (Traducción automática)

Class diagram

final var map = new LinkedHashMap<String, Integer>();
System.out.println(map); // {}

map.put("a", 10);
map.put("b", 20);
map.put("c", 30);
System.out.println(map); // {a=10, b=20, c=30}

System.out.println(map.get("a")); // 10
System.out.println(map.get("b")); // 20
System.out.println(map.get("X")); // null

map.remove("b");
System.out.println(map); // {a=10, c=30}
final var linkedHashMap = new LinkedHashMap<String, Integer>();
linkedHashMap.put("xxx", 10);
linkedHashMap.put("yyy", 20);
linkedHashMap.put("aaa", 30);
linkedHashMap.put("bbb", 40);

System.out.println(linkedHashMap); // {xxx=10, yyy=20, aaa=30, bbb=40}

final var hashMap = new HashMap<String, Integer>();
hashMap.put("xxx", 10);
hashMap.put("yyy", 20);
hashMap.put("aaa", 30);
hashMap.put("bbb", 40);

System.out.println(hashMap); // {aaa=30, bbb=40, yyy=20, xxx=10}

Constructors

LinkedHashMap ()

Construye una instancia de LinkedHashMap ordenada por inserción vacía con la capacidad inicial predeterminada (16) y el factor de carga (0,75). (Traducción automática)

final var map = new LinkedHashMap<String, Integer>();
System.out.println(map); // {}
System.out.println(map.isEmpty()); // true

map.put("a", 10);
map.put("b", 20);
map.put("c", 30);

System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.size()); // 3

LinkedHashMap (int initialCapacity)

Construye una instancia de LinkedHashMap ordenada por inserción vacía con la capacidad inicial especificada y un factor de carga predeterminado (0,75). (Traducción automática)

final var map = new LinkedHashMap<String, Integer>(10000000);
System.out.println(map); // {}

final var startTime = System.nanoTime();

for (int i = 0; i < 1000000; i++) {
    map.put(String.valueOf(i), i);
}

final var endTime = System.nanoTime();

// 0.076968 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
final var map = new LinkedHashMap<String, Integer>(1);
System.out.println(map); // {}

final var startTime = System.nanoTime();

for (int i = 0; i < 1000000; i++) {
    map.put(String.valueOf(i), i);
}

final var endTime = System.nanoTime();

// 0.119630 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);

LinkedHashMap (int initialCapacity, float loadFactor)

Construye una instancia de LinkedHashMap ordenada por inserción vacía con la capacidad inicial y el factor de carga especificados. (Traducción automática)

final var map = new LinkedHashMap<String, Integer>(16, 0.05f);
System.out.println(map); // {}

final var startTime = System.nanoTime();

for (int i = 0; i < 1000000; i++) {
    map.put(String.valueOf(i), i);
}

final var endTime = System.nanoTime();

// 0.160612 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);
final var map = new LinkedHashMap<String, Integer>(16, 0.75f);
System.out.println(map); // {}

final var startTime = System.nanoTime();

for (int i = 0; i < 1000000; i++) {
    map.put(String.valueOf(i), i);
}

final var endTime = System.nanoTime();

// 0.117338 sec.
System.out.printf("%f sec.%n", (endTime - startTime) / 1000000000.0);

LinkedHashMap (int initialCapacity, float loadFactor, boolean accessOrder)

Construye una instancia de LinkedHashMap vacía con la capacidad inicial, el factor de carga y el modo de ordenamiento especificados. (Traducción automática)

// accessOrder = false
final var map = new LinkedHashMap<String, Integer>(16, 0.75f, false);
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

System.out.println(map.get("a")); // 10
System.out.println(map); // {a=10, b=20, c=30}

System.out.println(map.get("b")); // 20
System.out.println(map); // {a=10, b=20, c=30}
// accessOrder = true
final var map = new LinkedHashMap<String, Integer>(16, 0.75f, true);
map.put("a", 10);
map.put("b", 20);
map.put("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

System.out.println(map.get("a")); // 10
System.out.println(map); // {b=20, c=30, a=10}

System.out.println(map.get("b")); // 20
System.out.println(map); // {c=30, a=10, b=20}

LinkedHashMap (Map<? extends K,? extends V> m)

Construye una instancia de LinkedHashMap ordenada por inserción con las mismas asignaciones que el mapa especificado. (Traducción automática)

final var m = Map.of("a", 10, "b", 20, "c", 30);
System.out.println(m); // {b=20, a=10, c=30}

final var map = new LinkedHashMap<>(m);
System.out.println(map); // {b=20, a=10, c=30}
System.out.println(map.size()); // 3

Methods

void clear ()

Elimina todas las asignaciones de este mapa. (Traducción automática)

final var map = new LinkedHashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

System.out.println(map); // {a=1, b=2, c=3}
System.out.println(map.size()); // 3

map.clear();
System.out.println(map); // {}
System.out.println(map.size()); // 0

boolean containsValue (Object value)

Devuelve verdadero si este mapa asigna una o más claves al valor especificado. (Traducción automática)

final var map = new LinkedHashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
map.put("X", 3);

System.out.println(map); // {a=1, b=2, c=3, X=3}

System.out.println(map.containsValue(0)); // false
System.out.println(map.containsValue(1)); // true
System.out.println(map.containsValue(2)); // true
System.out.println(map.containsValue(3)); // true
System.out.println(map.containsValue(4)); // false

Set<Map.Entry<K,V>> entrySet ()

Devuelve una vista de conjunto de las asignaciones contenidas en este mapa. (Traducción automática)

final var map = new LinkedHashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
System.out.println(map); // {a=1, b=2, c=3}

final var entries = map.entrySet();
System.out.println(entries); // [a=1, b=2, c=3]

map.replace("b", 20);
System.out.println(map); // {a=1, b=20, c=3}
System.out.println(entries); // [a=1, b=20, c=3]

entries.remove(Map.entry("a", 1));
System.out.println(map); // {b=20, c=3}
System.out.println(entries); // [b=20, c=3]

for (final var entry : entries) {
    entry.setValue(entry.getValue() * 10);
}

System.out.println(map); // {b=200, c=30}
System.out.println(entries); // [b=200, c=30]

V get (Object key)

Devuelve el valor al que está asignada la clave especificada, o nulo si este mapa no contiene ninguna asignación para la clave. (Traducción automática)

final var map = new LinkedHashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);

System.out.println(map); // {a=1, b=2, c=3}

System.out.println(map.get("a")); // 1
System.out.println(map.get("b")); // 2
System.out.println(map.get("c")); // 3
System.out.println(map.get("X")); // null
System.out.println(map.get("")); // null

Set<K> keySet ()

Devuelve una vista de conjunto de las claves contenidas en este mapa. (Traducción automática)

final var map = new LinkedHashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
System.out.println(map); // {a=1, b=2, c=3}

final var keys = map.keySet();
System.out.println(keys); // [a, b, c]

map.put("d", 4);
System.out.println(map); // {a=1, b=2, c=3, d=4}
System.out.println(keys); // [a, b, c, d]

keys.remove("a");
System.out.println(map); // {b=2, c=3, d=4}
System.out.println(keys); // [b, c, d]

static <K, V> LinkedHashMap<K,V> newLinkedHashMap (int numMappings)

Crea un nuevo LinkedHashMap vacío y ordenado por inserción, adecuado para la cantidad esperada de asignaciones. (Traducción automática)

final var map = LinkedHashMap.<String, Integer>newLinkedHashMap(3);
System.out.println(map); // {}
System.out.println(map.isEmpty()); // true

map.put("a", 10);
map.put("b", 20);
map.put("c", 30);

System.out.println(map); // {a=10, b=20, c=30}
System.out.println(map.size()); // 3

V putFirst (K k, V v)

Inserta la asignación dada en el mapa si aún no está presente, o reemplaza el valor de una asignación si ya está presente (operación opcional). (Traducción automática)

final var map = new LinkedHashMap<>();

map.putFirst("a", 10);
System.out.println(map); // {a=10}

map.putFirst("b", 20);
System.out.println(map); // {b=20, a=10}

map.putFirst("c", 30);
System.out.println(map); // {c=30, b=20, a=10}

V putLast (K k, V v)

Inserta la asignación dada en el mapa si aún no está presente, o reemplaza el valor de una asignación si ya está presente (operación opcional). (Traducción automática)

final var map = new LinkedHashMap<>();

map.putLast("a", 10);
System.out.println(map); // {a=10}

map.putLast("b", 20);
System.out.println(map); // {a=10, b=20}

map.putLast("c", 30);
System.out.println(map); // {a=10, b=20, c=30}

protected boolean removeEldestEntry (Map.Entry<K,V> eldest)

Devuelve verdadero si este mapa debe eliminar su entrada más antigua. (Traducción automática)

@SuppressWarnings("serial")
class MyMap extends LinkedHashMap<String, Integer> {
    private static final int MAX_ENTRIES = 3;

    @Override
    protected boolean removeEldestEntry(Map.Entry<String, Integer> eldest) {
        System.out.println("removeEldestEntry eldest : " + eldest);
        return size() > MAX_ENTRIES;
    }
}

final var map = new MyMap();

System.out.println("-- put a --");
map.put("a", 10);
System.out.println("map : " + map);

System.out.println("-- put b --");
map.put("b", 20);
System.out.println("map : " + map);

System.out.println("-- put c --");
map.put("c", 30);
System.out.println("map : " + map);

System.out.println("-- put d --");
map.put("d", 40);
System.out.println("map : " + map);

System.out.println("-- put e --");
map.put("e", 50);
System.out.println("map : " + map);

// Result
// ↓
//-- put a --
//removeEldestEntry eldest : a=10
//map : {a=10}
//-- put b --
//removeEldestEntry eldest : a=10
//map : {a=10, b=20}
//-- put c --
//removeEldestEntry eldest : a=10
//map : {a=10, b=20, c=30}
//-- put d --
//removeEldestEntry eldest : a=10
//map : {b=20, c=30, d=40}
//-- put e --
//removeEldestEntry eldest : b=20
//map : {c=30, d=40, e=50}

SequencedMap<K,V> reversed ()

Devuelve una vista ordenada invertida de este mapa. (Traducción automática)

final var map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var reversedMap = map.reversed();
System.out.println(reversedMap); // {c=30, b=20, a=10}

System.out.println(reversedMap.reversed()); // {a=10, b=20, c=30}

SequencedSet<Map.Entry<K,V>> sequencedEntrySet ()

Devuelve una vista SequencedSet del entrySet de este mapa. (Traducción automática)

final var map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var entries = map.sequencedEntrySet();
System.out.println(entries); // [a=10, b=20, c=30]
System.out.println(entries.reversed()); // [c=30, b=20, a=10]

SequencedSet<K> sequencedKeySet ()

Devuelve una vista SequencedSet del conjunto de claves de este mapa. (Traducción automática)

final var map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var keys = map.sequencedKeySet();
System.out.println(keys); // [a, b, c]
System.out.println(keys.reversed()); // [c, b, a]

SequencedCollection<V> sequencedValues ()

Devuelve una vista SequencedCollection de la colección de valores de este mapa. (Traducción automática)

final var map = new LinkedHashMap<>();

map.putLast("a", 10);
map.putLast("b", 20);
map.putLast("c", 30);

System.out.println(map); // {a=10, b=20, c=30}

final var values = map.sequencedValues();
System.out.println(values); // [10, 20, 30]
System.out.println(values.reversed()); // [30, 20, 10]

Collection<V> values ()

Devuelve una vista de colección de los valores contenidos en este mapa. (Traducción automática)

final var map = new LinkedHashMap<String, Integer>();
map.put("a", 1);
map.put("b", 2);
map.put("c", 3);
System.out.println(map); // {a=1, b=2, c=3}

final var values = map.values();
System.out.println(values); // [1, 2, 3]

map.replace("b", 20);
System.out.println(map); // {a=1, b=20, c=3}
System.out.println(values); // [1, 20, 3]

values.remove(1);
System.out.println(map); // {b=20, c=3}
System.out.println(values); // [20, 3]

//values.add(4); // UnsupportedOperationException

Methods declared in HashMap

clear, clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, newHashMap, put, putAll, remove, size

Consulte el siguiente enlace.

Methods declared in AbstractMap

equals, hashCode, toString

Consulte el siguiente enlace.

Methods declared in Map

compute, computeIfAbsent, computeIfPresent, containsKey, equals, forEach, getOrDefault, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size

Consulte el siguiente enlace.

Methods declared in SequencedMap

firstEntry, lastEntry, pollFirstEntry, pollLastEntry

Consulte el siguiente enlace.


Related posts

To top of page