Рассматривали ли вы использование одновременных коллекций в java.util.concurrent
?Трудно дать гораздо лучший совет, если честно ... нам нужно больше подробностей.
Следует отметить, что если у вас есть изменяемые коллекции, разделяемые между потоками, и незащищенные коллекции подвергаютсятак много кода, что вы не знаете, что может поменять его во время итерации, тогда вы можете захотите рассмотреть возможность изменения вашего дизайна, если это возможно.Неизменяемые коллекции часто могут содержать вещи в чистоте, иногда (но не всегда) за счет некоторой производительности.С ними может быть сложнее работать, но вам, скорее всего, будет легче рассуждать о вашем коде впоследствии.