[카테고리:] <span>Java 입문</span>

Java 언어에서는 다차원 배열과 Jagged 배열을 제공합니다. 둘 다 모두 배열을 원소로 하는 배열이라는 점에서는 같지만 다차원 배열은 원소 배열의 원소 개수가 같고 Jagged 배열은 원소 배열의 원소 개수가 다릅니다.

다차원 배열은 배열을 생성할 때 원소 배열의 구조를 명확하게 명시합니다. 다음은 원소의 형식이 int이고 원소 개수가 10인 배열을 원소로 하고 원소 개수가 5인 이차원 배열을 선언한 예제입니다.

int[][] darray = new int[5][10];

다음은 n 개의 그룹 인원의 성적을 입력받아 출력하는 예제 코드입니다. 여기에서 각 그룹의 인원 수는 같습니다.

//이차원 배열
import java.util.Scanner;
public class Program {
	static Scanner scanner = new Scanner(System.in);
	public static void main(String[] args){
		int [][] darray;
		
		int sn;
		System.out.println("한 그룹의 인원 수:");
		sn = scanner.nextInt();
		
		int n;
		System.out.println("그룹 수:");
		n = scanner.nextInt();
		
		darray = new int[n][sn];
		
		for(int i=0;i<darray.length;i++){
			for(int si=0;si<darray[i].length;si++){
				System.out.print((i+1)+"그룹 ");
				System.out.println((si+1)+"번 성적:");
				darray[i][si] = scanner.nextInt();
			}
		}
		
		for(int[] array: darray){
			for(int item:array){
				System.out.print(item+" ");
			}
			System.out.println("");
		}
	}
}

실행 결과

한 그룹의 인원 수:
3
그룹 수:
2
1그룹 1번 성적:
10
1그룹 2번 성적:
20
1그룹 3번 성적:
30
2그룹 1번 성적:
40
2그룹 2번 성적:
50
2그룹 3번 성적:
60
10 20 30 
40 50 60 

Jagged 배열은 배열을 생성할 때 원소 배열의 원소 개수를 명시하지 않고 생성합니다. 그리고 각 원소에 원소 배열을 생성하여 설정합니다.

다음은 원소 개수가 3, 원소 개수가 2인 int 형식 배열이 원소인 jagged 배열을 선언 및 설정한 것입니다.

int[][] jarray = new int[2][];

jarray[0] = new int[3];

jarray[1] = new int[2];

다음은 n 개의 그룹 인원의 성적을 입력받아 출력하는 예제 코드입니다. 여기에서 각 그룹의 인원 수는 다릅니다.

//Jagged 배열
import java.util.Scanner;
public class Program {
	static Scanner scanner = new Scanner(System.in);
	public static void main(String[] args){
		int [][] jarray;
		
		int n;
		System.out.println("그룹 수:");
		n = scanner.nextInt();
		
		jarray = new int[n][];
		
		int sn;
		for(int i=0;i<jarray.length;i++){
			System.out.println((i+1)+"번째 그룹 인원 수:");
			sn = scanner.nextInt();
			jarray[i] = new int[sn];
		}
		
		for(int i=0;i<jarray.length;i++){
			for(int si=0;si<jarray[i].length;si++){
				System.out.print((i+1)+"그룹 ");
				System.out.println((si+1)+"번 성적:");
				jarray[i][si] = scanner.nextInt();
			}
		}
		
		for(int[] array: jarray){
			for(int item:array){
				System.out.print(item+" ");
			}
			System.out.println("");
		}
	}
}

실행 결과

그룹 수:
2
1번째 그룹 인원 수:
3
2번째 그룹 인원 수:
2
1그룹 1번 성적:
10
1그룹 2번 성적:
20
1그룹 3번 성적:
30
2그룹 1번 성적:
40
2그룹 2번 성적:
50
10 20 30 
40 50 

Java 입문