본문 바로가기
[study]이론정리/JAVA(eclipse)

java 5일차_ 01. 2차원배열(3) 비정방형

by yoon9i 2024. 3. 14.

2) 비정방형

가. new 이용 ( 행크기만 지정 )
데이터타입[ ][ ] 배열명 = new 데이터타입[행크기][ ];
// 열은 나중에 생성
배열명[0] = new int[열크기];

 

package exam08_배열;

public class ArrayTest02_2차원배열3_비정방형 {

	public static void main(String[] args) {
		
		// 정방향형 2차원 배열 생성하는 3가지 방법
		
		// 1. new 이용
		
		int[][] num = new int[3][]; // 열 생성은 나중에 먼저 행만 생성
		
		// 열 생성
		num[0] = new int[1];
		num[1] = new int[3];
		num[2] = new int[2];
		
		// 초기화
		num[0][0] = 10;
		num[1][0] = 20;
		num[1][1] = 30;
		num[1][2] = 40;
		num[2][0] = 50;
		num[2][1] = 60;
		
		System.out.println("행의길이: " + num.length);
		System.out.println("1행의 열길이: " + num[0].length);
		System.out.println("2행의 열길이: " + num[1].length);
		System.out.println("2행의 2열 요소 접근: " + num[1][1]);
		System.out.println();
		
		// 일반 for 문
		for (int row = 0; row < num.length; row++) {
			// 열
			for(int col = 0; col < num[row].length; col++) {
				System.out.printf("num[%d][%d]=%d \n",row, col,num[row][col]);
			}
		}
		
		// foreach 문
		System.out.println();
		System.out.println("<foreach문>");
		for(int[] n : num) {
			for (int v : n ) {
				System.out.println(v);
			}
		}
		

	}// end main

}// end class



나. 리터럴 이용
데이터타입[ ][ ] 배열명 = { {값1}, {값1,값2,값3}, {값1,값2} };

다. new + 리터럴 이용
데이터타입[ ][ ] 배열명 = new 데이터타입[ ][ ]{ {값1}, {값1,값2,값3}, {값1,값2} };

 

package exam08_배열;

public class ArrayTest02_2차원배열3_비정방형2 {

	public static void main(String[] args) {
		
		// 정방향형 2차원 배열 생성하는 3가지 방법
		
		// 1. new 이용
		
		int[][] num = new int[3][]; // 열 생성은 나중에 먼저 행만 생성
		
		// 열 생성
		num[0] = new int[1];
		num[1] = new int[3];
		num[2] = new int[2];
		
		// 초기화
		num[0][0] = 10;
		num[1][0] = 20;
		num[1][1] = 30;
		num[1][2] = 40;
		num[2][0] = 50;
		num[2][1] = 60;
		
		// 2. 리터럴
		int[][] num2 = { { 10 }, { 20,30,40 } , { 50,60 } };
		
		// 3. new + 리터럴 이용
		int[][] num3 = new int[][] { { 10 }, { 20,30,40 } , { 50,60 } };
		
		// 일반 for 문
		for (int row = 0; row < num3.length; row++) {
			// 열
			for(int col = 0; col < num3[row].length; col++) {
				System.out.printf("num[%d][%d]=%d \n",row, col,num3[row][col]);
			}
		}
		
		// foreach 문
		System.out.println();
		System.out.println("<foreach문>");
		for(int[] n : num3) {
			for (int v : n ) {
				System.out.println(v);
			}
		}
		

	}// end main

}// end class