언어 자료구조 알고리즘/디딤돌 Java 언어 Part1

[Java] 6.6.2 다차원 배열과 Jagged 배열

언제나휴일 2016. 11. 23. 00:16
반응형

6.6.2 다차원 배열과 Jagged 배열


출간일 2016년 11월 28일

판매가 2000원

형태 ebook


이 책의 모든 내용은 http://ehpub.co.kr에 공개하고 있습니다.

학습에 도움이 되시면 ebook을 구입하여 소장하시면 감사하겠습니다.

언제나 휴일 출판사의 수익금의 대부분은 아프리카에 기부하고 있습니다.



  

 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

[소스 6.30] 다차원 배열

 

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

 

 다음은 원소 개수가 3, 원소 개수가 2int 형식 배열이 원소인 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

[소스 6.31] Jagged 배열

반응형