안녕하세요. 오늘은 자바의 배열이란 무엇이고 장단점은 무엇인가? 라는 주제로 포스팅을 하려합니다.
먼저 배열(Array)이란 자료구조(Data Structure)입니다. 동일한 자료형이 연속적 모여있습니다.
간단히 생각하자면, 변수의 모임이라고 부를 수 있겠습니다. 조금 더 자세하게 표현하자면 아래와 같은 구조입니다.
현대 컴퓨터의 메모리 모델은 커다란 배열이며 메모리 주소가 곧 인덱스인 것과 다름이 없습니다.
때문에, 배열은 속도가 빠르다는 장점을 가지고 있습니다.
"배열은 속도가 빠르다"
성능이 매우 중요하다면 배열을 사용하는 것입니다. 배열은 삽입과 삭제가 느리다는 단점을 가지고 있지만, 반대로 찾는 속도가 무척이나 빠릅니다. 다른 자료구조를 구현할 때도 이런 특성을 활용해서 최적화를 하는 경우가 있습니다.
이번에는 자바에서의 배열을 설명하겠습니다.
자바에서 배열을 생성하는 방법은 다음과 같습니다.
int[] numberArray= new int[4]; <-- 요소(Element)라고 불리며, 동적인 공간 '힙 영역에 4개의 공간을 만들어라'의 의미.
String[] stringArray= new String[5]; <-- 요소(Element)라고 불리며, 동적인 공간 '힙 영역에 5개의 공간을 만들어라'의 의미.
int[] 는 "배열임을 표시"함과 동시에 "요소의 데이터 타입"을 알려줍니다.
new는 자바에서 객체를 생성할 때 사용하는 키워드입니다. 즉, 자바에서 배열은 일종의 객체라는 것입니다.
자바에서 배열을 생성하고 값을 넣는 방법은 아래와 같습니다.
int[] numberArray= new int[4];
...
numberArray[0] = 10;
numberArray[1] = 20;
numberArray[2] = 30;
자바에서 배열을 선언함과 동시에 값을 넣는 방법은 아래와 같습니다.
int[] number2 = {10,20,30,40};
int [] number3 = new int[]{10,20,30,40};
배열을 생성할 때 어떤 값이 들어가는지 아는 경우 사용하면 됩니다.
자바에서 배열의 값을 가져오는 방법은 아래와 같습니다.
int[] numberArray= new int[4];
System.out.println(numberArray[0]);
자바는 배열의 생성과 동시에 값을 초기화 합니다.
정수형의 배열의 경우 숫자 0을, 문자의 경우 null을 기본값으로 넣습니다.
자바에서 배열의 크기를 아는 방법은 length입니다.
length는 배열 전체의 크기를 알려주는 함수입니다. 아래와 같이 사용하면 됩니다.
for(int i=0; numberArray.length > i++){
System.out.println(numberArray[i]);
}
우리가 잊지말아야되는 배열의 특징은 "크기가 정해져있다", "입력/삭제는 느리지만, 출력은 빠르다", "메모리를 적게 사용하는 자료구조가 되게 한다" 입니다. 배열은 효율적이고 좋은 구조입니다. 배열의 장점을 잘 살려서 프로그래밍을 한다면 빠른 결과를 도출하는 프로그램을 만들 수 있게 될 것입니다.
물론 배열이 불편한 점도 있습니다. 배열을 만들때는 꼭 크기를 지정해야됩니다. 크기 이상의 정보를 추가하면 에러도 뱃어내구요. 크기가 확장되지 않는다는 것은 상당히 불편한 점이긴 합니다.