Search
Duplicate

2D Arrays

νƒœκ·Έ
λ°°μ—΄
ꡬ뢄
코데카데미
Declaration, Initialization, and Assignment
이차원 λ°°μ—΄μ˜ μ„ μ–Έ, μ΄ˆκΈ°ν™”, 지정 방법은 λ‹€μŒκ³Ό κ°™λ‹€.
이차원 λ°°μ—΄μ˜ μ„ μ–Έ
[μžλ£Œν˜•][][] [λ°°μ—΄λͺ…];
이차원 λ°°μ—΄μ˜ μ΄ˆκΈ°ν™” / 지정
(2) λ³€μˆ˜κ°€ 아직 선언이 μ•ˆλμ„ λ•Œ: [μžλ£Œν˜•][][] [λ°°μ—΄λͺ…] = {{},{} …};
(3) λ³€μˆ˜κ°€ μ„ μ–Έ λ˜μ—ˆμ„ λ•Œ: [λ°°μ—΄λͺ…] = new [μžλ£Œν˜•][][] {{},{} …};
Accessing Elements in a 2D Array
이차원 λ°°μ—΄μ˜ νŠΉμ • μš”μ†Œμ— μ ‘κ·Όν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒκ³Ό 같은 ꡬ문을 μ‚¬μš©ν•œλ‹€.
[μžλ£Œν˜•] [μš”μ†Œμ΄λ¦„] = [이미 μ‘΄μž¬ν•˜λŠ” λ°°μ—΄λͺ…][column][row]
Modifying Elements in a 2D Array
λ‹€μŒκ³Ό 같은 배열을 μƒˆλ‘œ μƒμ„±ν–ˆλ‹€κ³  ν•΄λ³΄μž.
int[][] intTwo = new int[3][3];
이 이차원 λ°°μ—΄μ˜ 생성 직후 λͺ¨μŠ΅μ€ λ‹€μŒκ³Ό 같을 것이닀.
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
이 이차원 λ°°μ—΄μ—μ„œ νŠΉμ • μš”μ†Œμ˜ 값을 λ°”κΎΈκ³  μ‹Άλ‹€λ©΄ λ‹€μŒκ³Ό 같이 λ°”κΎΈλ©΄ λœλ‹€.
[λ°°μ—΄λͺ…][column][row] = [κ°’]; | intTwo[3][2] = 16;
[κ²°κ³Ό]
[0, 0, 0]
[0, 0, 0]
[0, 0, 16]
λ§Œμ•½ μ΄λ ‡κ²Œ λ°”κΎΌ 배열을 좜λ ₯ν•˜κ³  μ‹Άλ‹€λ©΄
System.out.println(Arrays.deepToString([λ°°μ—΄λͺ…]));
을 μ‚¬μš©ν•˜λ©΄ λœλ‹€.
Traversing 2D Arrays
이차원 λ°°μ—΄μ˜ νŠΉμ •κ°’μ„ 찾을 λ•Œ λ°˜λ³΅λ¬Έμ„ μ‚¬μš©ν•  수 μžˆλ‹€. λ°˜λ“œμ‹œ for 문만 μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 것은 μ•„λ‹ˆλ©°, while μ΄λ‚˜ do-while λ¬Έ λ˜ν•œ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€. ν•˜μ§€λ§Œ μ—¬κΈ°μ„œλŠ” for λ¬Έκ³Ό ν–₯μƒλœ for 문에 λŒ€ν•΄μ„œλ§Œ 기술 ν•  것이닀.
for 문을 μ΄μš©ν•˜μ—¬ 이차원 λ°°μ—΄μ˜ νŠΉμ •κ°’μ„ μ°ΎλŠ”λ°©λ²•μ€ 두가지가 μžˆλ‹€.
Row-Major Order
Row-Major Order 방식은 각각의 row 의 μ²˜μŒλΆ€ν„° λκΉŒμ§€ μˆœνšŒν•˜λŠ” 것이닀. μœ„μ˜ κ·Έλ¦Όμ—μ„œ 보듯이 ν–‰λ ¬μ˜ μ™Όμͺ½ μ²˜μŒλΆ€ν„° μ•„λž˜ 맨 였λ₯Έμͺ½ μˆœμ„œλ‘œ μˆœνšŒν•œλ‹€.
[μ˜ˆμ‹œ μ½”λ“œ]
for(int i = 0; i < matrix.length; i++) { for(int j = 0; j < matrix[i].length; j++) { System.out.println(matrix[i][j]); } }
Java
볡사
Column-Major Order
Column-major order 방식은 column 의 μ²˜μŒλΆ€ν„° μ•„λž˜λ‘œ, 즉 수직으둜 순회λ₯Ό μ‹œμž‘ν•œλ‹€. λ•Œλ¬Έμ— κ΄„ν˜Έ μ•ˆμ˜ λ‚΄μš©μ˜ Row-Major Order κ³Ό λ°˜λŒ€κ°€ λœλ‹€.
[μ˜ˆμ‹œ μ½”λ“œ]
for(int i = 0; i < matrix[0].length; i++) { for(int j = 0; j < matrix.length; j++) { System.out.println(matrix[j][i]); } }
Java
볡사
ν–₯μƒλœ for 문의 경우 μΈλ±μŠ€κ°€ ν•„μš”μ—†κΈ° λ•Œλ¬Έμ— 이차원 λ°°μ—΄μ˜ κ°’μ˜ μœ„μΉ˜λ³΄λ‹€ κ°’ κ·Έ μžμ²΄κ°€ μ€‘μš”ν•  λ•Œ μ‚¬μš©ν•œλ‹€.
[ꡬ문] for([μžλ£Œν˜•] [μš”μ†Œμ΄λ¦„] : [λ°°μ—΄λͺ…]) {}
[μ˜ˆμ‹œ μ½”λ“œ]
for(String[] rowOfStrings : twoDStringArray) { for(String s : rowOfStrings) { System.out.println(s); } }
Java
볡사