Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 네트워크
- 데이터
- CS
- 백준
- 자바
- baekjoon
- spring
- 스프링부트
- 데이터베이스
- Oracle
- 스프링 부트 쇼핑몰 프로젝트 with JPA
- 파이썬
- 시큐리티
- Java
- 플러터
- 스프링
- DB
- JPA
- 자료구조
- springboot
- 리눅스
- backjoon
- CS지식
- python
- javascript
- Flutter
- postgresql
- 프로그래머스
- Spring Security
- 자바스크립트
Archives
- Today
- Total
Jin's Dev Story
[자료구조] Array vs ArrayList vs LinkedList 본문
- Array는 index로 빠르게 값을 찾는 것이 가능함
- LinkedList는 데이터의 삽입 및 삭제가 빠름
- ArrayList는 데이터를 찾는데 빠르지만, 삽입 및 삭제가 느림
배열
int arr[10];
String arr[5];
- 선언할 때 크기와 데이터 타입을 지정해야 함
- 메모리 공간에 할당할 사이즈를 미리 정해놓고 사용하는 자료구조다.
- 계속 데이터가 늘어날 때, 최대 사이즈를 알 수 없을 때는 사용하기에 부적합
- 중간에 데이터를 삽입하거나 삭제할 때도 매우 비효율적
- 특정 인덱스에 새로운 값을 넣어야 한다면 원래 값을 밀어내고 덮어씌워야 함
- 인덱스가 존재하기 때문에 위치를 바로 알 수 있어 검색이 편함
→ 이를 해결하기 위해 나온 것이 List
arrayList
- 배열처럼 크기를 정하지 않아도 됨
- 배열에서 인덱스가 중요하다면 리스트에서는 순서가 중요
- 크기가 정해져있지 않기 때문에 중간에 데이터 추가/삭제 용이
- 인덱스를 가지고 있어서 검색도 빠름
- 그러나 중간에 데이터를 추가/삭제할 때 시간이 오래 걸림
연결 리스트
- 단일, 다중 등
- 한 노드에 연결될 노드의 포인터 위치를 가리키는 방식
- 단일은 뒤에 노드만 가리키고, 다중은 앞뒤 노드를 모두 가리키는 차이
- 특정 값을 찾는 건 비효율적
- 배열과 arrayList에서는 인덱스가 있어서 검색이 빠르지만 연결 리스트는 순차검색에 있어서는 시간이 더 걸림
'CS 지식 > [자료구조]' 카테고리의 다른 글
[자료구조] 트리(Tree) (0) | 2023.07.19 |
---|---|
[자료구조] 힙(Heap) (0) | 2023.07.19 |
[자료구조] 스택 & 큐 (0) | 2023.07.19 |
[자료구조] 연결 리스트(Linked List) (0) | 2023.07.19 |
[자료구조] 배열 (0) | 2023.07.18 |