Мне кажется, что вам нужна только одна коллекция, чтобы обеспечить безопасность потоков:
- Если коллекция видна снаружи класса (публичная область или область по умолчанию)
- Если вы возвращаете дескриптор в коллекцию из метода
- Если коллекция является статическим членом вашего класса
Все это, вероятно, плохие идеи по дизайну.
Лучшим подходом было бы сделать коллекцию самой Приватной или Защищенной и получать к ней доступ через синхронизированные методы. В случае статического элемента, если вам нужно это сделать, лучше использовать Singleton.