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
볡μ¬