если в один List добавляются элементы несколькими потоками, то могут быть траблы?
У меня получается что этот List содержит null-элементы, хотя я 100% не ложу туда null-ы
да, это не потокобезопасно
CopyOnWriteArrayList медленный на запись, стоит учесть если производительность важна
городить свою реализацию с AtomicInteger я бы не стал, легко допустить ошибку. есть много других способов