Альтернативы java.util.concurrent.ConcurrentSkipListSet - PullRequest
1 голос
/ 22 марта 2012

Я смотрю на перенос некоторого кода, который использует java.util.concurrent.ConcurrentSkipListSet, в среду, где этот класс недоступен (в частности, Android 2.2). Поэтому я ищу альтернативы этому. Мои требования:

  • базовая реализация 'Set' (не нужен NavigableSet или аналогичный)
  • стандартные операции должны быть поточно-ориентированными (у меня недостаточно громкой связи, поэтому блокировка допустима)
  • итераторы не должны выдавать исключение ConcurrentModificationException
  • Итераторы должны поддерживать операцию удаления ()

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 22 марта 2012

Существует бэкпорт java.util.concurrent для JDK 1.3 и выше . Включает в себя ConcurrentSkipListSet. Дайте это попробовать. Вы, вероятно, хотите версию для JDK 5.

0 голосов
/ 22 марта 2012

Используйте HashSet:

 Set s = Collections.synchronizedSet(new HashSet(...)); 

Синхронизация по s, и это должно работать, если вы не изменяете набор каким-либо иным образом, кроме как с помощью операции удаления () Iterator.

Collections.synchronizedSet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...