При выводе имени текущего потока - все происходит верно. А при выводе индекса того же потока я получаю -1. Что я не так делаю?
int countOfShips = scanner.nextInt();
List<MyOwnThread> list = new ArrayList<>();
Runnable runnable = new Runnable() {
@Override
public void run() {
int randomIndex = (int) (Math.random() * ((countOfShips-1) - 0)) + 0;
while (randomIndex == list.indexOf(Thread.currentThread())){
randomIndex = (int) (Math.random() * ((countOfShips-1) - 0)) + 0;
}
System.out.println(Thread.currentThread().getName());
System.out.println(list.indexOf(Thread.currentThread()));
}
};
for (int i = 0; i < countOfShips; i++) {
list.add(i, new MyOwnThread());
list.get(i).setHp(random.nextInt(51) + 50);
list.get(i).setDamage(random.nextInt(11) + 20);
list.get(i).setCoolDown(0.2f + random.nextDouble() * 1.5f);
Thread thread = new Thread(runnable);
list.get(i).setThread(thread);
list.get(i).getThread().start();
list.get(i).getThread().join();
}