Java : SequencedMap 示例

Java 中的 SequencedMap (Java SE 23 & JDK 23) 及其示例。
您将找到大多数 SequencedMap<K,V> 方法的代码示例。

注解 :

  • 本文可能使用了翻译软件以方便阅读。 另请查看英文原文

简介

具有明确定义的遇到顺序、支持两端操作且可逆的 Map。SequencedMap 的遇到顺序与 SequencedCollection 元素的遇到顺序类似,但顺序适用于映射而非单个元素。 (机器翻译)

Class diagram

final SequencedMap<String, Integer> 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}
System.out.println(map.reversed()); // {c=30, b=20, a=10}

map.putFirst("X", 700);
map.putFirst("Y", 800);
map.putFirst("Z", 900);

System.out.println(map); // {Z=900, Y=800, X=700, a=10, b=20, c=30}
System.out.println(map.reversed()); // {c=30, b=20, a=10, X=700, Y=800, Z=900}

Methods

default Map.Entry<K,V> firstEntry ()

返回此映射中的第一个键值映射,如果映射为空,则返回 null。 (机器翻译)

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

System.out.println(map); // {}
System.out.println(map.firstEntry()); // null

map.putLast("a", 10);

System.out.println(map); // {a=10}
System.out.println(map.firstEntry()); // a=10

map.putLast("b", 20);

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

map.putLast("c", 30);

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

default Map.Entry<K,V> lastEntry ()

返回此映射中的最后一个键值映射,如果映射为空,则返回 null。 (机器翻译)

final SequencedMap<String, Integer> map = new LinkedHashMap<>();

System.out.println(map); // {}
System.out.println(map.lastEntry()); // null

map.putLast("a", 10);

System.out.println(map); // {a=10}
System.out.println(map.lastEntry()); // a=10

map.putLast("b", 20);

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

map.putLast("c", 30);

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

default Map.Entry<K,V> pollFirstEntry ()

删除并返回此映射中的第一个键值映射,如果映射为空,则返回 null(可选操作)。 (机器翻译)

final SequencedMap<String, Integer> 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}

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

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

System.out.println(map.pollFirstEntry()); // c=30
System.out.println(map); // {}

System.out.println(map.pollFirstEntry()); // null

default Map.Entry<K,V> pollLastEntry ()

删除并返回此映射中的最后一个键值映射,如果映射为空,则返回 null(可选操作)。 (机器翻译)

final SequencedMap<String, Integer> 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}

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

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

System.out.println(map.pollLastEntry()); // a=10
System.out.println(map); // {}

System.out.println(map.pollLastEntry()); // null

default V putFirst (K k, V v)

如果给定的映射尚不存在,则将其插入到映射中;如果映射已存在,则将其替换为映射的值(可选操作)。 (机器翻译)

final SequencedMap<String, Integer> 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}

default V putLast (K k, V v)

如果给定的映射尚不存在,则将其插入到映射中;如果映射已存在,则将其替换为映射的值(可选操作)。 (机器翻译)

final SequencedMap<String, Integer> 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}

SequencedMap<K,V> reversed ()

返回此地图的反向排序视图。 (机器翻译)

final SequencedMap<String, Integer> 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}

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

返回此映射的 entrySet 的 SequencedSet 视图。 (机器翻译)

final SequencedMap<String, Integer> 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]

default SequencedSet<K> sequencedKeySet ()

返回此映射的 keySet 的 SequencedSet 视图。 (机器翻译)

final SequencedMap<String, Integer> 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]

default SequencedCollection<V> sequencedValues ()

返回此映射的值集合的 SequencedCollection 视图。 (机器翻译)

final SequencedMap<String, Integer> 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]

Methods declared in Map

clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values

请参阅下面的链接。


相关文章

To top of page