Ответ
В Android/Java есть несколько потокобезопасных коллекций:
- ConcurrentHashMap - потокобезопасная версия HashMap. Позволяет параллельные операции чтения и ограниченное количество параллельных записей.
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();
map.put("key", 1);
- CopyOnWriteArrayList - потокобезопасный вариант ArrayList. При изменении создает новую копию массива. Эффективен для частого чтения и редкой записи.
CopyOnWriteArrayList<String> list = new CopyOnWriteArrayList<>();
list.add("item");
-
BlockingQueue интерфейс и его реализации (ArrayBlockingQueue, LinkedBlockingQueue) - блокирующие очереди, полезные для producer-consumer сценариев.
-
ConcurrentLinkedQueue - неблокирующая потокобезопасная очередь на основе CAS-операций.
-
ConcurrentSkipListMap/Set - аналоги TreeMap/TreeSet с поддержкой параллелизма.
Важно выбирать коллекцию в зависимости от сценария использования, так как у каждой разная производительность при разных операциях.