Collections.SynchronizedSortedMap(IDictionary) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает синхронизированную (потокобезопасную) отсортированную карту, поддерживаемую указанной отсортированной картой.
[Android.Runtime.Register("synchronizedSortedMap", "(Ljava/util/SortedMap;)Ljava/util/SortedMap;", "")]
[Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })]
public static System.Collections.IDictionary SynchronizedSortedMap (System.Collections.IDictionary m);
[<Android.Runtime.Register("synchronizedSortedMap", "(Ljava/util/SortedMap;)Ljava/util/SortedMap;", "")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "K", "V" })>]
static member SynchronizedSortedMap : System.Collections.IDictionary -> System.Collections.IDictionary
Параметры
отсортированная карта, "упаковаемая" в синхронизированную отсортированную карту.
Возвращаемое значение
синхронизированное представление указанной отсортированного сопоставления.
- Атрибуты
Комментарии
Возвращает синхронизированную (потокобезопасную) отсортированную карту, поддерживаемую указанной отсортированной картой. Чтобы гарантировать последовательный доступ, очень важно, чтобы <надежный<>> доступ к резервной отсортированной карте выполнялся через возвращенную отсортированную карту (или ее представления).
Крайне важно, чтобы пользователь вручную синхронизировать возвращенную отсортированную карту при обходе любого из представлений коллекции или представлений коллекций любого из его subMap
представлений или tailMap
headMap
с помощью Iterator
, Spliterator
или Stream
:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap());
...
Set s = m.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not s!
Iterator i = s.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
или:
SortedMap m = Collections.synchronizedSortedMap(new TreeMap());
SortedMap m2 = m.subMap(foo, bar);
...
Set s2 = m2.keySet(); // Needn't be in synchronized block
...
synchronized (m) { // Synchronizing on m, not m2 or s2!
Iterator i = s2.iterator(); // Must be in synchronized block
while (i.hasNext())
foo(i.next());
}
Несоблюдение этого совета может привести к недетерминированному поведению.
Возвращаемая отсортированная карта будет сериализуемой, если указанная отсортированная карта сериализуема.
Документация по Java для java.util.Collections.synchronizedSortedMap(java.util.SortedMap<K, V>)
.
Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом Android и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License.