본문/내용
1. Java의 컬렉션 프레임워크에서 ArrayList와 LinkedList의 차이점은 무엇인가요
ArrayList와 LinkedList는 Java의 컬렉션 프레임워크에서 주로 사용하는 리스트 구현체입니다. ArrayList는 내부적으로 동적 배열을 사용하기 때문에 인덱스를 통한 임의 접근이 빠른 편입니다. 평균적으로 인덱스 접근 시간은 O(이며, 요소를 삽입하거나 삭제할 때는 배열의 재할당이나 요소 이동이 필요해 최악의 경우 O(n)이 소요됩니다. 반면, LinkedList는 이중 연결 리스트 구조를 가지고 있어 특정 위치의 삽입과 삭빠르며, 앞이나 뒤에서의 작업은 O(로 수행됩니다. 그러나 임의 접근은 불리하여, 특정 인덱스를 갖는 요소를 찾기 위해서는 리스트를 처음부터 순차 검색해야 하며, 이 경우 O(n)의 시간이 소요됩니다. 과거 대규모 데이터 처리 환경에서는 System. arraycopy를 활용한 ArrayList의 배열 복사 성능이 뛰어나 1만 건 이상 대량 데이터 처리 시 속도 차이가 뚜렷하게 나타났습니다. 또한, LinkedList는 요소 삭제 후 연결 상태 갱신에 따른 오버헤드가 있어, 빈번한 삽입 및 삭제 작업이 많은 경우에 더 유리하지만, 임의 접근이 적거나 읽기 중심의 경우 ArrayList가…