[자료구조] Array vs ArrayList vs LinkedList
·
CS 지식/[자료구조]
Array는 index로 빠르게 값을 찾는 것이 가능함 LinkedList는 데이터의 삽입 및 삭제가 빠름 ArrayList는 데이터를 찾는데 빠르지만, 삽입 및 삭제가 느림 배열 int arr[10]; String arr[5]; 선언할 때 크기와 데이터 타입을 지정해야 함 메모리 공간에 할당할 사이즈를 미리 정해놓고 사용하는 자료구조다. 계속 데이터가 늘어날 때, 최대 사이즈를 알 수 없을 때는 사용하기에 부적합 중간에 데이터를 삽입하거나 삭제할 때도 매우 비효율적 특정 인덱스에 새로운 값을 넣어야 한다면 원래 값을 밀어내고 덮어씌워야 함 인덱스가 존재하기 때문에 위치를 바로 알 수 있어 검색이 편함 → 이를 해결하기 위해 나온 것이 List arrayList 배열처럼 크기를 정하지 않아도 됨 배열에서..
[자료구조] 연결 리스트(Linked List)
·
CS 지식/[자료구조]
연결 리스트(Linked List) 연속적인 메모리 위치에 저장되지 않는 선형 데이터 구조 각 노드는 데이터 필드와 다음 노드에 대한 참조를 포함하는 노드로 구성 연결 리스트(Linked List) 사용 이유 배열은 비슷한 유형의 선형 데이터를 저장하는데 사용할 수 있지만 제한 사항이 있음 1. 배열의 크기가 고정되어 있어 미리 요소의 수에 대해 할당을 받아야 함 2. 새로운 요소를 삽입하는 것은 비용이 많이 듬 장점 동적 크기 삽입/삭제 용이 단점 임의로 액세스를 허용할 수 없음 → 즉, 첫 번째 노드부터 순차적으로 요소에 액세스 해야함 포인터의 여분이 메모리 공간이 목록의 각 요소에 필요 LinkedList 선언 LinkedList list = new LinkedList();//타입 미설정 Objec..