У меня есть один вопрос. Что происходит, когда я пытаюсь дважды добавить «один и тот же» объект в список ArrayList. Под «тот же самый» я подразумеваю объект отдельного класса, который идентифицируется как одинаковый с помощью equals() и hashCode(). Он имеет разные значения для большинства переменных-членов и был создан, возможно, из разных потоков, но для equals() и hashCode() он "одинаков". Заменяет ли второй объект первый объект?
Кроме того, что произойдет, если два потока попытаются одновременно добавить эти объекты в список ArrayList? Это вообще возможно? Если да, то что происходит?
Благодарю вас! :-)
[EDIT] Спасибо за все ответы! Должен ли я использовать synchronizedList, а не «синхронизировать (список) {}»? --> Я прочитал документы, даже с synchronizedList, для итерации следует использовать синхронизацию (список)
[EDIT2] Может ли synchronizedList быть объявлен как переменная-член? Я пытался, но это не сработало.