Поделиться через


Collections.SynchronizedCollection(ICollection) Метод

Определение

Возвращает синхронизированную (потокобезопасную) коллекцию, поддерживаемую указанной коллекцией.

[Android.Runtime.Register("synchronizedCollection", "(Ljava/util/Collection;)Ljava/util/Collection;", "")]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public static System.Collections.ICollection SynchronizedCollection(System.Collections.ICollection c);
[<Android.Runtime.Register("synchronizedCollection", "(Ljava/util/Collection;)Ljava/util/Collection;", "")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
static member SynchronizedCollection : System.Collections.ICollection -> System.Collections.ICollection

Параметры

c
ICollection

Коллекция, вложенная в синхронизированную коллекцию.

Возвращаемое значение

синхронизированное представление указанной коллекции.

Атрибуты

Комментарии

Возвращает синхронизированную (потокобезопасную) коллекцию, поддерживаемую указанной коллекцией. Чтобы гарантировать последовательный доступ, важно <обеспечить надежный и< надежный>> доступ к резервной коллекции с помощью возвращаемой коллекции.

Очень важно, чтобы пользователь вручную синхронизировал возвращаемую коллекцию при обходе через Iteratorили Spliterator Stream:

Collection c = Collections.synchronizedCollection(myCollection);
                ...
             synchronized (c) {
                 Iterator i = c.iterator(); // Must be in the synchronized block
                 while (i.hasNext())
                    foo(i.next());
             }

Неспособность следовать этому совету может привести к недетерминированному поведению.

Возвращаемая коллекция не передает hashCode операции в equals резервную коллекцию, но использует Objectметоды равенства и хэшкода. Это необходимо для сохранения контрактов этих операций в случае, если резервная коллекция является набором или списком.

Возвращаемая коллекция будет сериализуемой, если указанная коллекция является сериализуемой.

Документация по Java для java.util.Collections.synchronizedCollection(java.util.Collection<T>).

Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Применяется к