[JAVA]/06.배열

07. 2차원 배열_1(배열선언,배열할당)

76beny 2022. 4. 6. 21:56

목차

- 2차원 배열

-2차원 배열 예시

- 2차원 배열 선언

- 2차원 가변형 배열 선언 예시

- 2차원 배열 할당(생성)


2차원배열

■ 자료형이 같은 1차원 배열의 묶음으로 배열 안에 다른 배열 존재

■ 2차원 배열은 할당된 공간마다 인덱스 번호 두 개 부여
(앞 번호는 행, 뒷 번호는 열 ([0][0]) )

arr[m][n]

- m은 행, m 값이 올라가면 행이 아래로 감

- n은 열, n값이 올라가면 열이 옆으로 이동

위 사진의 저작권은 KH정보교육원에 있습니다.

2차원 배열 대표적인 예시

 

import java.util.Arrays;

public class DoubleArrayBasic {	
	public static void main(String[] args) {
		
		//1.가장 기본적인 2차원 배열!
		int[][] array1 = new int[10][10];//10x10=100개 array1 공간 생성!(int공간)
		
		for(int i = 0 ; i < array1.length; i++) {//순회
			for(int j = 0 ; j < array1[i].length; j++) {//  array1의 [i]의 .length(길이) 
				array1[i][j] = i * 10 + j;//0~99까지 차례대로 초기화됨
				System.out.print(array1[i][j]+ " ");//행렬 ij출력//"_"로 문자됨(띄어쓰기)
			}
			System.out.println();//0~99출력// 행열 그림으로 그렸더니 이해 ㅇㅋ
		}
		System.out.println("-----------------------------------------------");
		for(int i = 0 ; i < array1.length; i ++) {
			for(int j = 0 ; j < array1[i].length; j++) {
				System.out.print(array1[j][i]+ " ");//행과열을 ij에서 ji로 변경
			}
			System.out.println();//한번턴돌고 줄바꾸고 한번턴돌고
		}

출력값


2차원 배열 선언

■ 선언종류

자료형[ ][ ] 배열명 ;
자료형 배열명[ ][ ] ;
자료형[ ] 배열명[ ];

 


2차원 가변형 배열 선언예시

import java.util.Arrays;

public class DoubleArrayBasic {	
	public static void main(String[] args) {
    
    //2.2차원 가변형 배열 선언법
	int[][] array2 = new int[10][];//2차원 배열(자식배열)은 크기가 선언되지 않은 상태!	
	System.out.println(Arrays.toString(array2));
    //배열 array2출력=> null10개 출력//배열의 기본값은null
		
	for(int i = 0 ;i<array2.length;i++) {
		array2[i] = new int[i+1];//1 2 3 4 5 6...10생성(0부터 생성 안되게 하는!)
		for(int j = 0 ;j<array2[i].length;j++) {
			array2[i][j] = i * 10 + j;
			System.out.print(array2[i][j]);// 그림그려서 해보기!	
		}
		System.out.println();	
	}//NUllPointerException : 객체가 생성되지 않은 상태에서 객체에 접근 했을 경우 나오는 에러!
		
	//String str = null;
	//System.out.println(str.length());//에러발생!
		
	//String str = "";//공백은 null아님!
	//System.out.println(str.length());//에러발생안함


2차원 배열 할당(생성)

■ 할당 종류

자료형[ ][ ] 배열명 = new 자료형[행크기][열크기];
자료형 배열명[ ][ ] = new 자료형[행크기][열크기] ;
자료형[ ] 배열명[ ] = new 자료형[행크기][열크기] ;

■ 예시

/* ex1 */
int[][] arr = new int[3][4];
int arr[][] = new int[3][4];


/* ex2 */
int[][] score=nex int[행][열];
//표의 행과 열의 개수//행열의 2차원 배열 생성됨.

score[0][0]=100;//배열 스코러의 1행1열에 100을 저장
system.out.println(score[0][0]);//배열 스코어의 1행1열의 값을 출력.

 


"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.

이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."