2차원 배열 (다중 배열)
자바에서 2차원 배열은 ‘배열의 배열’이라고도 할 수 있으며 흔히 접하게 되는 액셀과 같이 열과 행으로 이루어진 데이터 구조이다.
기본형
1차원 배열 : int[] arr1 = new int[3];
2차원 배열 : int[][] arr2 = new int[3][3];
1차원 배열 : int[] arr3 = {1, 2, 3};
2차원 배열 : int[][] arr4 = {{1,2,3}, {4,5,6}};
사용 방법 (2차원 배열에서 꺼내는 방법)
int num = arr4[0][2]; // 첫 배열의 2번째(index) 즉 3을 가져온다.
출력 형태 (hint : for문을 2개 사용)
1 2 3
4 5 6
7 8 9
package Q1;
public class Quiz1 {
public static void main(String[] args) {
int[][] matrix = {{1,2,3}, {4,5,6}, {7,8,9}};
for(int i = 0; i < matrix.length; i++) {
for(int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}
배열 응용
동적 배열 - 동적배열 즉 arraylist는 웹 개발에서 아주 사용 빈도가 높다. (1차원/2차원 배열은 웹 개발 시 사용되지 않는다.)
동적 배열은 기본 배열과는 달리 갯수의 제한 없이 필요한 만큼 넣고 삭제하고 수정이 가능하다.
사용 방법1
클래스의 제일 윗 부분에 사용을 위해 import 한다.
사용 방법2
동적 배열을 생성한다. 초기화한다.
ArrayList<String> names = new ArrayList<>();
위 구문에서 <>안에 String 은 이 배열에는 문자열만 저장할 것이다 라는 선언이다. 이것을 제너릭이라고 한다.
문제 1
다음은 ArrayList를 사용하여 학생 이름을 저장하는 프로그램입니다. 다음 프로그램을 완성하여 “Alice”, “Bob”, “Charlie”를 ArrayList에 추가하고 모든 학생 이름을 출력하는 코드를 작성하세요.
결과
Alice
Bob
Charlie
package Q2;
import java.util.ArrayList;
public class Quiz2 {
public static void main(String[] args) {
ArrayList<String> nameList = new ArrayList<>();
nameList.add("Alice");
nameList.add("Bob");
nameList.add("Charlie");
for(int i = 0; i < nameList.size(); i++) {
System.out.println(nameList.get(i));
}
for(String name : nameList) { // for - each 구문
System.out.println(name);
}
}
}