λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Backend/Java

[Java]λ°°μ—΄(Array) - 2차원 λ°°μ—΄(Double Array)

by sukii 2023. 12. 5.
λ°˜μ‘ν˜•

πŸ”Ά2차원 λ°°μ—΄ μ„ μ–Έ

ν˜•μ‹) μžλ£Œν˜•[ ] [ ]    μ°Έμ‘°λ³€μˆ˜ = new  μžλ£Œν˜•[κ°€λ‘œ(ν–‰) 개수][μ„Έλ‘œ(μ—΄) 개수];

=> ν–‰κ°œμˆ˜: 2차원 배열에 μ‘΄μž¬ν•˜λŠ” 1차원 λ°°μ—΄μ˜ 개수

=> μ—΄κ°œμˆ˜: 1차원 배열에 μ‘΄μž¬ν•˜λŠ” μš”μ†Œμ˜ 개수

 

2차원 배열은 μ˜ˆμ „μ— μˆ˜ν•™μ—μ„œ 배운 행렬을 μƒκ°ν•˜λ©΄ κ°„λ‹¨ν•˜λ‹€.

(그런데 막상 μ‚¬μš©ν•΄λ³΄λ©΄ κ°„λ‹¨ν•˜μ§„ μ•ŠμŒ.. γ…Žγ…Ž)

μ•„λž˜μ˜ 그림을 참고해보면 μ’€ 이해가 κ°„λ‹€.

 

좜처 : https://yeon-kr.tistory.com/132

 

int μ •μˆ˜λ₯Ό 3개 넣을 수 μžˆλŠ” 배열이 2개 λ§Œλ“€μ–΄μ§„ 것이닀.

즉, 1차원 λ°°μ—΄μ˜ λͺ¨μž„이 2차원 배열이닀.

 

 

예제λ₯Ό 톡해 [2차원 λ°°μ—΄] μ•Œμ•„λ³΄κΈ°πŸ‘©‍πŸ’»

package basic;

public class DoubleArrayApp {
	public static void main(String[] args) {
		int[][] numArray=new int[2][3];
		
		//2차원 λ°°μ—΄μ˜ μš”μ†Œλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 첨자λ₯Ό 2개 μ‚¬μš©
		System.out.println("numArray[0][0] = "+numArray[0][0]);
		System.out.println("numArray[0][1] = "+numArray[0][1]);
		System.out.println("numArray[0][2] = "+numArray[0][2]);
	
		System.out.println("numArray.length = "+numArray.length);
		System.out.println("numArray[0].length = "+numArray[0].length);
		System.out.println("numArray[1].length = "+numArray[1].length);
		System.out.println("=========================================================");
	}
}

 

console 좜λ ₯ κ²°κ³Ό

numArray[0][0] = 0

numArray[0][1] = 0

numArray[0][2] = 0

numArray.length = 2

numArray[0].length = 3

numArray[1].length = 3

=========================================================

 

 

package basic;

public class DoubleArrayApp {
	public static void main(String[] args) {
		int[][] numArray=new int[2][3];

		//2차원 배열에 μ‘΄μž¬ν•˜λŠ” 1차원 λ°°μ—΄(ν–‰)을 μΌκ΄„μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ 반볡문			
		for(int i=0;i<numArray.length;i++) {
			for(int j=0; j<numArray[i].length;j++){
				System.out.print(numArray[i][j]+"\t");
			}
			System.out.println();
		}
		System.out.println("=========================================================");
		//int[][] suArray=new int[][ {{10,20,30},{40,50,60},{70,80,90}};
		int[][] suArray={{10,20,30},{40,50,60},{70,80,90}};
		
		//2차원 배열에 μ‘΄μž¬ν•˜λŠ” 1차원 배열을 ν•˜λ‚˜μ”© μ œκ³΅λ°›μ•„ μ°Έμ‘°λ³€μˆ˜μ— μ €μž₯
		for(int[] array : suArray) {
			//1차원 배열에 μ‘΄μž¬ν•˜λŠ” μš”μ†Œκ°’μ„ ν•˜λ‚˜μ”© μ œκ³΅λ°›μ•„ μ •μˆ˜ν˜• λ³€μˆ˜μ— μ €μž₯
			for(int number : array) {
				System.out.print(number+"\t");
			}
			System.out.println();
		}
		System.out.println("=========================================================");
	}
}

 

console 좜λ ₯ κ²°κ³Ό

0 0 0

0 0 0

=========================================================

10 20 30

40 50 60

70 80 90

=========================================================

 

package basic;

public class DoubleArrayApp {
	public static void main(String[] args) {
		//1차원 λ°°μ—΄μ˜ μš”μ†Œμ— κ°œμˆ˜κ°€ μ„ μ–Έλ˜μ§€ μ•Šμ€ 2차원 λ°°μ—΄ 생성
		// => 2차원 배열에 1차원 λ°°μ—΄μ˜ λ©”λͺ¨λ¦¬ μ£Όμ†Œλ₯Ό μ €μž₯ν•  수 μžˆλŠ” μ°Έμ‘°μš”μ†Œλ§Œ μƒμ„±λ˜λ©° null μ €μž₯
		int[][] valueArray=new int[3][];
		
		System.out.println("valueArray = "+valueArray);
		System.out.println("valueArray[0] = "+valueArray[0]);
		System.out.println("valueArray[1] = "+valueArray[1]);
		System.out.println("valueArray[2] = "+valueArray[2]);
		System.out.println("=========================================================");
		//1차원 배열을 μƒμ„±ν•˜μ—¬ 2차원 λ°°μ—΄μ˜ μ°Έμ‘° μš”μ†Œμ— μ €μž₯
		//1차원 λ°°μ—΄μ˜ μš”μ†Œμ˜ κ°œμˆ˜κ°€ λ‹€λ₯Έ 2차원 λ°°μ—΄ - κ°€λ³€ λ°°μ—΄
		valueArray[0]=new int[3];
		valueArray[1]=new int[2];
		valueArray[2]=new int[4];
		System.out.println("=========================================================");
		int[][] doubleArray={{10,20,30},{40,50},{60,70,80,90}};//κ°€λ³€λ°°μ—΄
		
		for(int[] array : doubleArray) {
			//1차원 배열에 μ‘΄μž¬ν•˜λŠ” μš”μ†Œκ°’μ„ ν•˜λ‚˜μ”© μ œκ³΅λ°›μ•„ μ •μˆ˜ν˜• λ³€μˆ˜μ— μ €μž₯
			for(int number : array) {
				System.out.print(number+"\t");
			}
			System.out.println();
		}
		System.out.println("=========================================================");
	}
}

 

console 좜λ ₯ κ²°κ³Ό

valueArray = [[I@6073f712

valueArray[0] = null

valueArray[1] = null

valueArray[2] = null

=========================================================

=========================================================

10 20 30

40 50

60 70 80 90

=========================================================

λ°˜μ‘ν˜•