ConcurrentNavigableMap-Schnittstelle
Eine java.util.concurrent.ConcurrentNavigableMap-Schnittstelle ist eine Unterschnittstelle der ConcurrentMap-Schnittstelle und unterstützt NavigableMap-Operationen, und zwar rekursiv für ihre navigierbaren Unterkarten und ungefähren Übereinstimmungen.
ConcurrentMap-Methoden
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | NavigableSet<K> descendingKeySet() Gibt eine NavigableSet-Ansicht in umgekehrter Reihenfolge der in dieser Karte enthaltenen Schlüssel zurück. |
2 | ConcurrentNavigableMap<K,V> descendingMap() Gibt eine Ansicht in umgekehrter Reihenfolge der in dieser Karte enthaltenen Zuordnungen zurück. |
3 | ConcurrentNavigableMap<K,V> headMap(K toKey) Gibt eine Ansicht des Teils dieser Karte zurück, dessen Schlüssel streng kleiner als toKey sind. |
4 | ConcurrentNavigableMap<K,V> headMap(K toKey, boolean inclusive) Gibt eine Ansicht des Teils dieser Karte zurück, dessen Schlüssel kleiner als (oder gleich, wenn inklusive wahr ist) toKey sind. |
5 | NavigableSet<K> keySet() Gibt eine NavigableSet-Ansicht der in dieser Karte enthaltenen Schlüssel zurück. |
6 | NavigableSet<K> navigableKeySet() Gibt eine NavigableSet-Ansicht der in dieser Karte enthaltenen Schlüssel zurück. |
7 | ConcurrentNavigableMap<K,V> subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive) Gibt eine Ansicht des Teils dieser Karte zurück, dessen Schlüssel von Schlüssel bis Schlüssel reichen. |
8 | ConcurrentNavigableMap<K,V> subMap(K fromKey, K toKey) Gibt eine Ansicht des Teils dieser Karte zurück, dessen Schlüssel von Schlüssel einschließlich bis zu Schlüssel exklusiv reichen. |
9 | ConcurrentNavigableMap<K,V> tailMap(K fromKey) Gibt eine Ansicht des Teils dieser Karte zurück, dessen Schlüssel größer oder gleich fromKey sind. |
10 | ConcurrentNavigableMap<K,V> tailMap(K fromKey, boolean inclusive) Gibt eine Ansicht des Teils dieser Karte zurück, dessen Schlüssel größer als (oder gleich, wenn inklusive wahr ist) vonKey sind. |
Beispiel
Das folgende TestThread-Programm zeigt die Verwendung von ConcurrentNavigableMap.
import java.util.concurrent.ConcurrentNavigableMap;
import java.util.concurrent.ConcurrentSkipListMap;
public class TestThread {
public static void main(final String[] arguments) {
ConcurrentNavigableMap<String,String> map =
new ConcurrentSkipListMap<String, String>();
map.put("1", "One");
map.put("2", "Two");
map.put("3", "Three");
map.put("5", "Five");
map.put("6", "Six");
System.out.println("Initial ConcurrentHashMap: "+map);
System.out.println("HeadMap(\"2\") of ConcurrentHashMap: "+map.headMap("2"));
System.out.println("TailMap(\"2\") of ConcurrentHashMap: "+map.tailMap("2"));
System.out.println(
"SubMap(\"2\", \"4\") of ConcurrentHashMap: "+map.subMap("2","4"));
}
}
Dies führt zu folgendem Ergebnis.
Ausgabe
Initial ConcurrentHashMap: {1 = One, 2 = Two, 3 = Three, 5 = Five, 6 = Six}
HeadMap("2") of ConcurrentHashMap: {1 = One}
TailMap("2") of ConcurrentHashMap: {2 = Two, 3 = Three, 5 = Five, 6 = Six}
SubMap("2", "4") of ConcurrentHashMap: {2 = Two, 3 = Three}