이전 프로젝트를 업데이트하고 있는데 IDE에서 "폐기 된"것으로 표시된 객체를 제거해야하는지 궁금합니다. 해당 객체는 Vector 및 Hashtable입니다. 나는 약간의 연구를했으며, ArrayList와 HashMap의 새로운 객체가 기본적으로 동일하고, 단지 동기화되지 않은 것으로 보입니다.ArrayList 및 HashMap과 같은 클래스가 동기화되지 않는 이유는 무엇입니까?
제 질문은 왜 전환해야합니까? 소량의 속도에 대한 대가로 응용 프로그램에서 약간의 보안을 해치고 있지 않습니까? 기념비적 인 결정이 아닌 것처럼 보입니다. 그러나 결정을 내리기 전에 시간이 가치가 있는지 알 것입니다.
감사합니다.
이러한 객체에 멀티 스레드/동시 코드가 적용되지 않으면 동기화가 필요하지 않을 수 있습니다. 따라서 'synchronized'블록에서 가능한 성능 저하가 발생하지 않아도됩니다. 'Vector'와'Hashtable'은 Java API에서 더 이상 사용되지 않거나 더 이상 사용되지 않습니다. 각각의 인터페이스가 동일한 인터페이스를 제공합니다. 마찬가지로 Java 5 이상에서는'java.util.concurrent'에 액세스 할 수 있습니다.이 컨테이너는 동시 액세스 컨테이너가 필요한 경우 더 나은 컨테이너를 수행합니다. – birryree
필요할 경우 언제든지 Collections.synchronizedList();로 래핑 할 수 있지만 Jon의 대답은 먼저 – Attila