Array
DataStructure를 왜 사용하는가?
Array를 사용하는 이유는 이렇게 생각해 볼 수 있다. 예를 들어서, 우리가 관리해야 하는 data들이 많아 지게 되면 이를 관리하기 위한 방법을 생각하게 될 것이다. 이를 쉽게 관리하기 위해서 우리는 유사한 데이터들을 특정한 조건으로 모으는 과정을 거치게 될 것이고 분류된 하나의 덩이리가 또 다른 조건으로 분류되는 과정을 거치게 되고 이와 같이 데이터를 묶는 방식에 대한 개념을 우리는 데이터의 구조화라고 합니다.
쉬운 예를 들어 보겠습니다. 학교를 예로 들어보면 학생이 3명이었던 시골 학교가 인근에 산업 시설이 들어서게되고 고속도로와 같은 인프라가 형성되어 학생들의 수가 500명으로 늘어 났다고 생각해 봅시다. 학교측의 입장에서는 학생들을 관리하기 위해서 동일한 나이의 학생들을 먼저 "학년"이라는 기준으로 묶고, 같은 학년의 학생들 중 유사한 각반 별로 학력 수준이 고루 퍼질 수 있도록 "반"을 배치하도록 합니다. 각 반에서는 학생들 고유의 "번호"를 부여하여 선생님의 입장에서 더욱 관리하게 쉽게 되겠지요. 이와 같은 것을 우리는 데이터를 구조화 했다라고 생각할 수 있는 것입니다.
이와 같은 데이터를 구조화하는 방법들에 대해서 우리는 배울 것입니다. 준비 되셨으면 이제 시작해 보도록 하겠습니다.
Array
데이터를 구조화하는 방법 중 Array라는 것이 있습니다. Java라는 언어를 기준으로 우리는 학습할 것이기 때문에 Array를 만드는 방법 부터 살펴 볼 필요가 있습니다.
Int numbers1 = new Int[4];
numbers1[0] = 1;
numbers1[1] = 2;
numbers1[2] = 3;
numbers1[3] = 4;
용어를 먼저 설명해 보도록 하겠습니다. Element, Index, Value가 가지는 의미는 우리가 알 고 있어야 합니다. Index는 앞선 예에서 말을 해보면 학생들의 번호라고 생각하면 됩니다. Value는 그렇다면 학생들의 이름이라고 생각하면 됩니다. 여기서 더 나아가면 index와 value가 묶여 있는 것을 하나의 element라고 생각하시면 됩니다. 이제는 Array를 조금 더 쉽게 만들어 보도록 하겠습니다.
Int numbers2 = new int[]{1,2,3,4,};
또는
Int numbers3 = {1,2,3,4};
와 같이 만들 수도 있습니다.
Array와 함께 쓰이는 반복문
배열의 존재 목적은 데이터를 구조화해서 반복적인 일을 컴퓨터에게 일임하기 위해서 우리는 코딩이라는 것을 하게 됩니다. 반복문 중 while문과 for - in 문에 대해서 알아 보도록 하겠습니다.
while(numbers1.lenght > i) {
System.out.println(numbers1[i]);
i++1;
}
와 같이 사용할 수도 있고, 동일한 결과값을 가지는
for(i=0;i>numbers.1lenght;i++){
System.out.println(numbers1[i]);
}
와 같이 사용할 수 있습니다.
Array의 장, 단점
Array는 생성될때 크기가 정해지게 되므로 index값을 넘어서는 수를 호출하게 되면 오류를 발생시키며, Element의 더이상의 추가도 불가능하다는 단점을 가지게 됩니다. 또한, 다른 데이터 구조에 비해서 기능도 현저히 작은 편입니다. 하지만 우리는 이것을 왜 쓸까요? 기능도 상대적으로 적고, 활용가능성도 제한적이지만 이러한 특징들을 다시 작고 가볍다는 특징, 더불어 메모리를 적게 차지한다는 장점을 가지게 되어, 부품의 최소단위로서의 활용도를 극도로 높이게 된다는 장점을 가집니다.
다음으로 List에 대해서 배워 보도록 하겠습니다.