자료구조
먼저, ArrayList에 대해서 알아보기 전에 자료구조란 무엇인지 알아봅시다.
자료구조는 컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장을 의미합니다.
더 정확하게 자료구조는 데이터 값의 모임, 또 데이터 간의 관계 그리고 데이터에 적용할 수 있는 함수나 명령을 의미합니다.
자료구조의 목적
자료를 좀 더 효율적으로 저장, 관리하기 위해 사용하며 신중하게 선택한 자료구조는 보다 효율적인 알고리즘을 사용할 수 있게 함으로써 프로그램의 실행시간이나, 사용하는 메모리 양을 절약하게 할 수 있습니다.
자료구조의 선택 기준
자료를 처리할 때 효율적으로 처리하기 위해서 다음과 같은 사항 등을 고려하여 선택해야 합니다.
-
자료의 처리 시간
-
자료의 특성과 크기
-
자료가 활용되는 방법
-
구현에 필요한 기억 공간의 크기
자료구조의 분류
자료구조는 다음과 같이 분류할 수 있습니다.
-
단순 구조 : 프로그래밍에서 사용되는 기본적인 데이터 타입
- 2진수
- 정수 / 실수
- 문자 / 문자열
-
선형 구조 : 자료를 구성하는 데이터를 순차적으로 나열시킨 형태 (1:1)
- 배열
- 링크드 리스트
- 단순 링크드 리스트
- 이중 링크드 리스트
- 원형 링크드 리스트
- 스택
- 큐
- 덱
-
비선형 구조 : 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태(1:n or n:m)
- 트리
- 일반 트리
- 이진 트리
- 그래프
- 방향 그래프
- 무방향 그래프
- 트리
-
파일 구조 : 파일에서의 데이터를 표현하는 방식과 데이터에 접근하는 연산에 관한 자료 구조
- 순차 파일
- 색인 파일
- 직접 파일