같은 타입의 변수들로 이루어진 유한 집합으로 정의됩니다. 배열을 구성하는 각각의 값을 배열 요소(element)라고 하며, 배열에서의 위치를 가리키는 숫자는 인덱스(index)라고 합니다.
위의 예시처럼 메모리상에 존재하며 arr에는 reference(참조) 주소가 담겨 있습니다. 그 주소는 배열(array)의 첫 번째 값을 가리키고 있습니다.
배열을 생성하면 위의 표와 같이 초기값이 생성됩니다.
위의 예시처럼 String 같은 Object(객체) 값을 사용하게 되면 백열 안에는 reference value(값)만 존재하게 됩니다. 실제의 값들은 메모리상 어딘가에 존재하게 됩니다
배열이 가지고 있는 인덱스라는 장점을 버리고 대신 빈틈없는 데이터의 적재라는 장점을 취한 데이터 (구조 =스트럭쳐) 라고 할 수 있습니다.
배열처럼 메모리상에 연속적으로 존재하는 것이 아닌 어딘가에 존재하기만 하면 첫 번째 요소로 부터 두 번째 요소로 링크만 연결하면 됩니다. Linkedlist(링크드 리스트) 라고도 불립니다.
데이터를 찾을 때는 항상 링크가 한쪽 방향으로만 연결되어 있기때문에 첫 번째 element(요소)에서 다음 element(요소)로 연결해야 합니다.
위의 단점을 보완한 것이 양방형으로 연결된 Double Linkedlist(더블 링크드 리스트)입니다.
배열에서의 단점은 중간에 데이터를 추가하거나 삭제하기 위해서는 뒤에 있는 요소들을 모두 정리한후 추가하거나 삭제할수 있지만 리스트는 위의 사진처럼 비교적 간단하게 추가하거나 삭제할수 있습니다.