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
Параметры
Коллекция, вложенная в синхронизированную коллекцию.
Возвращаемое значение
синхронизированное представление указанной коллекции.
- Атрибуты
Комментарии
Возвращает синхронизированную (потокобезопасную) коллекцию, поддерживаемую указанной коллекцией. Чтобы гарантировать последовательный доступ, важно <обеспечить надежный и< надежный>> доступ к резервной коллекции с помощью возвращаемой коллекции.
Очень важно, чтобы пользователь вручную синхронизировал возвращаемую коллекцию при обходе через 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.