티스토리 뷰
더 깔끔한 노션을 원한다면
Collection 인터페이스를 확장한 자료형
ArrayList와 Vector는 AbstractList, LinkedList는 AbstractSequentialList을 확장한 자료형이다.
동기화 부분
Vector가 동기화가 된다면 ArrayList는 동기화가 되지 않는다.
Vector는 한번에 하나의 스레드만 접근 가능하며, ArrayList는 동시에 여 러 스레드가 작업할 수 있다.
Vector
Vector는 공유 자원이나 복수의 사용자가 존재할 때 안전하게 프로그램을 작성 가능하다.
하지만 하나의 스레드가 하나의 자원을 이용하는 경우에는 오히려 성능이 떨어진다.
공간이 부족할 때 있는 공간 만큼 공간을 추가하기 때문에 메모리를 많이 잡아먹는다.
ArrayList
인덱스를 가지고 있어서 검색에 용이하다.
하지만 삽입/삭제를 하려면 중간에 이빨 나간 곳을 전부 한칸씩 땡기거나 뒤로 밀어야하기 때문에 삽입과 삭제가 빈번한 데이터인 경우에는 부적합하다.
Vector와 달리 동기화를 보장해주지 못하고, 공간이 모자를 때는 모자른 만큼만 공간을 확보한다.
LinkedList
- 연결리스트 라고도 불리며 노드 간에 연결을 통해서 리스트로 구현된 객체
- 다음 노드의 위치 정보만 가지고 있으며 인덱스를 가지고 있지 않기 때문에 탐색시 순차접근만 가능하다. (노트 탐색 시 시간이 많이 소요될 수 있음)
- 노드 추가/삭제는 위치정보의 수정만으로 가능하기 때문에 성능이 좋음
출처
'면접 질문' 카테고리의 다른 글
백엔드 면접 질문 - 카프카 (1) | 2023.08.19 |
---|---|
백엔드 면접 질문 - 인덱스 (0) | 2023.04.29 |
ChatGPT에게 물어본 백엔드 면접 예상 질문과 답변 (0) | 2023.02.23 |
기본형(Primitive type)과 참조형(Reference Type) (0) | 2020.10.06 |
접근지정자 (0) | 2020.10.06 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 디자인 패턴
- 알고리즘
- 프로그래머스
- 디자인패턴
- 이펙티브 자바
- BOJ
- 클린 코드
- kkoon9
- BAEKJOON
- Kotlin
- JPA
- 코테
- 클린 아키텍처
- 백준
- 이팩티브 자바
- AWS
- Java
- Olympiad
- Algorithm
- Spring Boot
- 정규표현식
- Effective Java
- programmers
- C++
- kotest
- node.js
- MSA
- 객체지향
- 테라폼
- Spring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함