1. Array
--> 핵심: 메모리 효율성 빠른 인덱싱
1) index로 빠르게 값을 찾는 것이 가능함
2) 선언할 때 크기와 자료형을 지정함 --> 미리 메모리 공간에 할당할 사이즈를 정해놓고 사용하는 자료구조
따라서 데이터 최대 크기를 모르거나, 데이터가 계속 늘어나는 경우에는 부적합
2. ArrayList (Array의 문제점 해결)
--> 핵심: 삽입 순서 유지 특성
1) 데이터를 찾는데 빠르지만, 삽입 및 삭제가 느림
2) array처럼 크기를 정해주지 않아도 된다.
3) array에서 index가 중요했다면, List에서는 순서가 중요
4) 크기가 정해져있지 않기 때문에, 중간에 데이터를 추가하거나 삭제하더라도 array에서 갖고 있던 문제점을 해결 가능하며, index를 가지고 있으므로 검색도 빠름
5) "중간에 데이터를 추가 및 삭제"할 때 시간이 오래걸리는 단점이 존재한다. (데이터를 삽입하거나 삭제할때 당기거나 미는 연산이 추가 발생, 메모리 낭비)
3. LinkedList
1) 데이터의 삽입 및 삭제가 빠름
2) 한 노드에 연결될 노드의 위치를 포인터로 가리키는 방식 (단일: 뒷 노드만 가리킴/다중: 앞 뒤 모두 가리킴)
3) 삭제 및 삽입시 전체를 돌 필요x, 주솟값만 수정하면 됨.
4) index가 없기 때문에(순차적 특성), k번째 수를 찾는것에는 비효율