Как получить данные из потоков обратно в main в java?
Смотрите ForkJoinPool
Можно использовать Future. Ну или синхронизацию. 
Кстати, для многопоточности надо использовать контейнеры, которые специально заточе.... А судя по приведённому коду, тебе нужно почитать литературу по многопоточности в java, а не спрашивать тут такие вещи. Тогда и таких вопросов не будет возникать.