티스토리 뷰
배열에 대해서 설명하기 전에 다음 상황을 한번 상상해보자.
특정 학교의 학생들을 한명 한명씩 관리하기는 굉장히 어렵지만 그 학생들을 반으로 나누어서 관리하게 되면
상대적으로 수월하게 관리를 할 수 있을 것이다.
// Case 1 : 학생을 하나 하나씩 관리할 때
String stud_1 = "Chany";
String stud_2 = "Chan";
String stud_3 = "Yeol";
String stud_4 = "Yeol2";
...
// Case 2 : 반의 개념으로 묶어서 관리할 때
1반 = {"Chany", "Chan", "Yeol", "Yeol2", ...}
가령, 위에서 첫 번쨰 경우에서 특정 학생들을 호출해야 할 때는 한 명씩 불러야하지만, 두번째 경우처럼 하나의 반으로
특정하게 되면, 단지 1반 학생들에 대해서만 호출하면 된다. 이것이 바로 Grouping의 효율성이다.
Array
우리는 지금까지 변수를 선언하고 값을 할당할 때, 하나의 단일 값만 할당해왔다.
하지만 우리가 필요에 의해서 변수 안에 여러 값을 담아야할 경우가 생길 수 있다. 이처럼 연관되어 있는 여러 값을
하나의 변수에 넣어서 쉽게 관리할 수 있도록 배열을 사용할 수 있다. 그로인한 이점은 서두에서도 언급했던 것으로
넘어가도록한다. 그럼 어떤 식으로 배열 type의 변수를 선언하고 값을 할당하는지 알아보자.
public class Array {
public static void main(String[] args) {
// 선언
int[] a = {1,2,3,4};
// 호출
System.out.println(a[0]);
System.out.println(a[1]);
System.out.println(a[2]);
System.out.println(a[3]);
}
}
위 예제에서 보듯 우리는 지금까지 int a = 1; 이런 식으로 변수를 할당해왔지만, 여기선 [] 키워드를 사용하고
해당 배열에 할당할 값은 중괄호로 묶어서 할당하고 있다. 중요한 점은 배열을 선언할 때 지정한 Data Type의 값만
배열에 집어넣을 수 있다. 즉, 위의 선언부를 해석하면 다음과 같다.
int [] : 정수형 배열 Data Type
a : 변수 이름
{1, 2, 3, 4} : 배열에 할당할 값
다음으로 호출을 할 때는 인덱스 번호를 통해 호출을 할 수 있다. 여기서 인덱스란, 각 배열의 방 번호라고 볼 수 있다.
배열을 선언하면 아래와 같이 자동으로 0번 index부터 값이 채워진다. 따라서 호출을 할 때 각 방의 번호를 통해
호출하면 각 방에 들어가 있는 값이 호출된다고 볼 수 있다.
이것은 하나의 반 안에 속해있는 학생들의 번호라고 이해하면 이해하기 쉬울 것이다.
Index | 0 | 1 | 2 | 3 |
Value | 1 | 2 | 3 | 4 |
다음으로 아래와 같이 다른 방법으로도 배열을 생성할 수 있다.
public class Array {
public static void main(String[] args) {
String[] b = new String[3];
System.out.println(b.length);
b[0] = "Chany";
b[1] = "Chang";
b[2] = "yeol2";
}
}
우선 new 라는 키워드는 후에 객체지향 프로그래밍과 관련된 포스팅에서 자세히 다룰 것이기 때문에 여기서는
새로운 무엇, 어떤 새로운 객체를 생성한다 정도로만 이해하고 넘어가자.
여기서 중요한 것은 new라는 키워드가 아니라 특정 Data Type의 배열을 미리 선언해두고, 후에 그 배열에 값을
할당하는 방법이다. 대신에 몇 개의 방을 생성할 것인지는 명확하게 명시해주어야 한다.
4번 row에 length라는 메소드는 배열이 몇 개의 방으로 되어 있는지 확인할 수 있는 메소드로, 여기서는 결과 값으로
3이 출력될 것이다. 이번에도 키워드를 해석하면,
String[] : String 배열 Data Type
b : 변수 이름
new String[3] : 3개의 방을 가지는 배열
조금 억지스럽게 정리를 하자면, 국적을 Data Type으로 비유해서,
첫 번째 방법은 특정 국적의 여행객만 받는 호텔이 있는데 투숙객이 들어올 때마다 방을 늘리는 방식으로 운영을 한다면
두 번째 방법은 미리 특정 갯수의 객실을 만들어 두고 투숙객을 받는 형태라고 이해하자!
이번 포스팅에서는 배열에 대한 아주 기초적인 부분을 살펴보았다.
이제 다음 포스팅에서는 앞서 언급했던 어떤 방법으로 반복문과 배열을 접목시키는지에 대해서 살펴볼 것이다!
읽어주셔서 감사합니다!! 😍
포스팅의 모든 학습 내용은 생활코딩의 Java 입문 수업의 출처임을 밝힙니다.
'프로그래밍 > Java 기초' 카테고리의 다른 글
Java(11-1), 나의 앱 만들기 (Feat. Method) (0) | 2020.08.18 |
---|---|
Java(10-1), 배열 for - each (0) | 2020.04.13 |
Java(9), 반복문 (0) | 2020.04.07 |
Java(8-1), 조건문 2 (0) | 2020.04.07 |
Java(8), 조건문 (0) | 2020.04.03 |