2 분 소요

배열(Arrays)

  • 배열은 하나의 변수 안에 여러 개의 값을 저장할때 사용됩니다.
  • 기본적 배열 선언은 변수타입과 대괄호( ‘[ ]’ )입니다.
    String[] cars;
    
  • 하지만 다음과 같이도 배열을 선언을 할 수 있습니다.
    String cars[];
    
  • 배열에 값은 선언과 동시에 넣을 수 있습니다.
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    
  • 또는 선언 후에 넣을 수도 잇습니다.
    String[] cars;
    cars = new String[4]; // cars에는 4개의 값만 넣을 수 있도록 선언
    cars[0] = "Volvo";
    cars[1] = "BMW";
    cars[2] = "Ford";
    cars[3] = "Mazda";
    
    • 배열은 항상 0부터 시작합니다
배열에 있는 요소 사용하기
  • 배열에 있는 요소는 인덱스 번호를 통해 사용할 수 있습니다.
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    System.out.println(cars[0]);
    // 출력: Volvo
    
배열 요소 바꾸기
  • 배열 안에 있는 요소 또한 인덱스 번호를 통해 바꿀 수 있습니다.
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    cars[0] = "Opel";
    System.out.println(cars[0]);
    // 출력: Opel
    
배열 길이
  • 배열은 하나의 객체임으로 메소드를 포함하고 있습니다. 그중에 길이를 알려주는 메소드를 사용해보겠습니다.
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    System.out.println(cars.length);
    // 출력: 4
    

배열 루프

for문
  • 예시
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    for (int i=0; i<cars.length; i++){
    System.out.println(cars[i]);
    }
    
for-each문
  • 예시
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    for (String i : cars) {
    System.out.println(i);
    }
    
while문
  • 예시
    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};
    while(i < cars.length) {
    System.out.println(cars[i]);
    i++;
    }
    
    • 배열을 선언 후에 while문 또는 for문을 사용할 때에는 꼭 배열 인덱스 번호에 신경을 써야합니다. 만약 부여된 인덱스 번호를 초과할 경우 NullPointerException 에러가 발생됩니다.

다차원 배열

  • 다차원 배열은 배열 안에 하나 이상의 배열을 담고 있는 배열을 뜻합니다.
  • 차원에 따라서 대괄호를 추가해주시면 됩니다.

  • 예시
    int[][] dimension2 = { {1, 2, 3, 4}, {5, 6, 7} };
    int[][][] dimension3 = { {1, 2, 3, 4}, {5, 6, 7}, {8, 9, 10, 11} };
    
    • 2차원을 초과하여 사용하는 일은 거의 없습니다. 고로 2차원을 위주로 다루겠습니다.
  • 방금 선언한 2차원 배열에서 7을 출력하기 위한 코드는 이러합니다.
    int[][] dimension2 = { {1, 2, 3, 4}, {5, 6, 7} };
    int z = dimension2[1][2];
    System.out.println(z); // 출력: 7
    
  • 쉽게 생각하기 위해서 2차원 배열을 표로 만들면 이러합니다.
인덱스 번호 0 1 2 3
0 1 2 3 4
1 5 6 7 Null
  • 포문을 통해 2차원 배열을 전체 출력해보겠습니다.
    int[][] dimension2 = { {1, 2, 3, 4}, {5, 6, 7} };
    for (int i=0; i<dimension2.length; i++) {
    for (int j=0; j<dimension2[i].length; j++) {
      System.out.println(dimension2[i][j]);
    }
    }
    
  • 후에 2차원 배열을 통해 각종 모양을 출력해보는 연습을 해보시면 좋겠습니다.
  • 예시
    for (int i=0; i<5; i++) {
    for (int j=0; j<i; j++) {
      System.out.print("*");
    }
    System.out.println("");
    }
    
    • println와 print의 차이점 또한 구글을 통해 찾아보시면 좋을거같습니다. 후에 printf 라는 것에 대해서도 다루겠습니다.