Как я могу получить совпадающий или потокобезопасный Map
в Scala, чьи ключи слабы? Например, есть collection.mutable.WeakHashMap
, но он, похоже, не поддерживает параллельный доступ/обновление. Дешевым решением было бы скрыть его за обычной синхронизированной синхронизацией Java?Речевая карта слабых клавиш хэша
1
A
ответ
2
Использовать Guava's MapMaker.
Пример из док показывает именно то, что вам нужно (в переводе на Scala):
import java.util.concurrent.ConcurrentMap
val timers: ConcurrentMap[Request, Stopwatch] =
new MapMaker().concurrencyLevel(4).weakKeys.makeMap
Это, конечно же, Java карта, но вы можете легко обернуть его в карту Scala:
import java.{util => ju}
import scala.collection.JavaConverters._
import scala.collection.mutable
val javaMap: ju.Map[String,String] = ...
val scalaMap: mutable.Map[String,String] = javaMap.asScala
Смежные вопросы
- 1. Как хранится карта хэша?
- 2. базовая карта нажатия клавиш
- 3. Карта хэша с несколькими ключами?
- 4. Ruby рекурсивная карта хэша объектов
- 5. Карта клавиш VS2008 клавиатуры затмить
- 6. карта клавиш клавиатуры с mootools
- 7. Сверхвысокая карта хэша C/C++ (таблица, словарь)
- 8. Карта хэша с параллельными значениями (в C++)
- 9. Речевая связь с обратной связью
- 10. ArrayList или карта отличительных клавиш, быстрее?
- 11. Карта Hazelcast: использование equals для клавиш карты
- 12. Как изменить все ключи хэша на новый набор заданных клавиш
- 13. Речевая транскрипция: узкополосная или широкополосная связь?
- 14. Речевая потоковая передача по Wi-Fi
- 15. Речевая речь не найдена ... Что мне делать?
- 16. Речевая коммуникация Windows Mobile в интранете
- 17. Речевая система обмена сообщениями для PHP/CodeIgniter?
- 18. Использование двунаправленных слабых указателей
- 19. ER Модель слабых объектов.
- 20. Оптимизация поиска слабых символов
- 21. Проблема о слабых ссылках
- 22. Выделение «слабых» страниц памяти
- 23. Создайте и используйте таблицу хэша, используя контейнеры. Карта
- 24. Почему MapMaker от Guava сообщает неправильный размер моей карты при использовании слабых клавиш?
- 25. Назначение хэша для хэша
- 26. Карта отображает элементы меню в комбинации клавиш в Visual Studio
- 27. Другие виды использования слабых ссылок?
- 28. Набор слабых наблюдателей в Swift
- 29. Когда следует избегать слабых типов?
- 30. Пустота на слабых чередующихся автоматах
Хорошо, но есть ли что-то менее тяжелое, чем рисование в полной сторонней библиотеке? –
@ 0__ Если вам нужна карта, которая является _concurrent_ (а не только синхронизирована) и имеет слабые клавиши, я не думаю, что такая реализация существует в стандартных библиотеках. – ghik