해결된 질문
작성
·
171
·
수정됨
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예
[질문 내용]
지난 강의에서 ArrayList와 LinkedList 구현체 선택 기준이
데이터를 조회할 일이 많거나
뒷 부분에 데이터를 추가,
삭제가 많은 경우
→ 배열 리스트
앞쪽의 데이터 추가, 삭제가 많은 경우
→ 연결 리스트
로 알려주셨습니다.
이번 ArrayDeque와 LinkedList의 구현체 선택 기준에 대한 언급은 없는데,
실무에서 거의 ArrayDeque로만 사용해서 그런건가요?
아니면 실무에서 ArrayDeque 대신 LinkedList로 사용할 때도
ArrayList와 LinkedList의 선택 기준이랑 동일하게
앞쪽에 데이터 추가, 삭제가 많을 때 사용하나요?
강의에서는 덱의 구현체는
노드 링크를 사용하는 LinkedList보다는
단순한 배열 구조로 성능이 빠른 ArrayDeque를 사용하자로 마무리하셔서 질문 남깁니다.
답변 1
1
안녕하세요. kyk님
Deque를 사용하는 경우 데이터를 앞이나, 뒤에 추가하거나 제거할 때 사용하는데요.
두 경우 모두 대부분의 상황에서 ArrayDeque는 LinkedList 보다 성능이 빠릅니다 🙂
ArrayDeque는 배열을 사용하지만 단순한 배열이라기 보다는 circular buffer라는 방식을 사용하는데요.
관련해서 circular buffer를 검색해보시면 도움이 되실거에요.
감사합니다.