Q1. 자바가 제공하는 대표적인 리스트는 무엇인가?
- ArrayList, Vector, LinkedList 이다.
Q2. Vector와 ArrayList는 어떤 리스트인가?
- 배열 기반의 리스트이다.
Q3. LinkedList는 어떤 리스트인가?
- 배열 기반이 아닌 연결 리스트이다.
Q4. Vector의 가장 큰 특징은 무엇인가?
- Thread Safe하다는 것이다.
Q5. ArrayList는 무엇을 기반으로 접근하는가?
- index를 기반으로 접근한다.
Q6. ArrayList에서 특정한 인덱스 위치에 추가하는데 걸리는 시간 복잡도는 무엇인가?
- O(N)이다.
Q7. ArrayList의 조회의 시간 복잡도는 무엇인가?
- O(1)이다.
Q8. ArrayList의 contains() 메소드의 시간 복잡도는 무엇인가?
- O(N)이다.
Q9. LinkedList는 무엇으로 구현되어 있는가?
-
Q10. LinkedList에는 실질적으로 '무엇'이 없는가?
-
Q11. LinkedList의 조회의 시간 복잡도는 무엇인가?
- O(N)이다.
Q11-1 왜 LinkedList의 조회의 시간 복잡도는 O(N)인가?
-> 조회를 위해서는 LinkedList의 헤드부터 해당 노드까지 이동해야 하기 때문이다.
Q12. LinkedList의 추가, 삭제의 시간 복잡도는 무엇인가?
- O(1)이다.
Q13. LinkedList의 삭제의 시간 복잡도는 '실질적으로'는 무엇인가?
- O(N)이다.
Q13-1 왜 그러한가?
- LinkedList에서 원소를 삭제하기 위해서는 우선 해당 원소를 탐색해야 하기 때문이다.
Q14. List 인터페이스의 구현 클래스 중,
코딩테스트에서는 무엇을 많이 물어보는가?
- LinkedList를 많이 물어본다.
Q14-1 왜 LinkedList를 많이 물어보는가?
-
참고
Q1~Q14 더 개발자, 인터뷰 가이드 6/18
A1~A8 6/20
'자료구조' 카테고리의 다른 글
해시 테이블 (0) | 2022.06.29 |
---|---|
자료구조(1) (0) | 2022.06.20 |
String, StringBuilder, StringBuffer API(Mission 2) (0) | 2022.06.15 |
배열과 리스트(Mission 1) (0) | 2022.06.15 |
병합 정렬(merge sort) (0) | 2022.06.07 |