[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값이 올라가면 열이 옆으로 이동
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차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."