2 차원 배열을 만들기위한 구문
치다:
int[][] multD = new int[5][];
multD[0] = new int[10];
이것이 5 개의 행과 10 개의 열로 2 차원 배열을 만드는 방법입니까?
이 코드를 온라인에서 보았지만 구문이 맞지 않았습니다.
다음을 시도하십시오 :
int[][] multi = new int[5][10];
... 이것은 짧은 손입니다 :
int[][] multi = new int[5][];
multi[0] = new int[10];
multi[1] = new int[10];
multi[2] = new int[10];
multi[3] = new int[10];
multi[4] = new int[10];
모든 요소에 대한 기본 값으로 초기화됩니다주의 int
, 0
이상의 사항에 해당합니다, 그래서 :
int[][] multi = new int[][]{
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};
2 차원 배열을 선언하고 선언시 다음과 같이 요소를 직접 저장할 수 있습니다.
int marks[][]={{50,60,55,67,70},{62,65,70,70,81},{72,66,77,80,69}};
여기서 int 는 배열에 저장된 정수형 요소를 나타내며 배열 이름은 'marks'입니다. int 는 "{"및 "}"중괄호 안에 표시된 모든 요소의 데이터 형식입니다. 배열은 데이터 형식이 같은 요소의 모음이기 때문입니다.
위에 쓰여진 성명서로 돌아갑니다. 각 요소 행은 중괄호 안에 작성해야합니다. 각 행의 행과 요소는 쉼표로 구분해야합니다.
이제 명령문을 관찰하십시오. 3 개의 행과 5 개의 열이있을 수 있으므로 JVM은 3 * 5 = 15 개의 메모리 블록을 작성합니다. 이 블록들은 개별적으로 다음과 같이 지칭 될 수 있습니다 :
marks[0][0] marks[0][1] marks[0][2] marks[0][3] marks[0][4]
marks[1][0] marks[1][1] marks[1][2] marks[1][3] marks[1][4]
marks[2][0] marks[2][1] marks[2][2] marks[2][3] marks[2][4]
참고 : n 개의 요소
를 저장 하려면 배열 인덱스가 0에서 시작하여 n-1로 끝납니다 . 2 차원 배열을 만드는 또 다른 방법은 먼저 배열을 선언 한 다음 new 연산자를 사용하여 배열을 할당하는 것입니다.
int marks[][]; // declare marks array
marks = new int[3][5]; // allocate memory for storing 15 elements
위의 두 가지를 결합하면 다음과 같이 작성할 수 있습니다.
int marks[][] = new int[3][5];
다른 사람들이 언급 한대로 만들 수 있습니다. 추가 할 점 하나 더 : 다음과 같이 반드시 같은 수의 열을 가질 필요는 없지만 각 행으로 기울어 진 2 차원 배열을 만들 수도 있습니다.
int array[][] = new int[3][];
array[0] = new int[3];
array[1] = new int[2];
array[2] = new int[5];
5 행 10 열의 2 차원 배열을 만드는 가장 일반적인 관용구 는 다음 과 같습니다.
int[][] multD = new int[5][10];
또는 각 행을 명시 적으로 초기화해야하지만 다음과 같은 것을 사용할 수 있습니다.
int[][] multD = new int[5][];
for (int i = 0; i < 5; i++) {
multD[i] = new int[10];
}
다음과 같이 선언 할 수도 있습니다. 좋은 디자인은 아니지만 작동합니다.
int[] twoDimIntArray[] = new int[5][10];
시험:
int[][] multD = new int[5][10];
코드에서 2D 배열의 첫 번째 행만 0으로 초기화됩니다. 행 2 ~ 5는 존재하지 않습니다. 당신이 그들을 인쇄하려고하면 당신 null
은 그들 모두를 얻을 수 있습니다.
int [][] twoDim = new int [5][5];
int a = (twoDim.length);//5
int b = (twoDim[0].length);//5
for(int i = 0; i < a; i++){ // 1 2 3 4 5
for(int j = 0; j <b; j++) { // 1 2 3 4 5
int x = (i+1)*(j+1);
twoDim[i][j] = x;
if (x<10) {
System.out.print(" " + x + " ");
} else {
System.out.print(x + " ");
}
}//end of for J
System.out.println();
}//end of for i
Java에서는 2 차원 배열을 1 차원 배열과 동일하게 선언 할 수 있습니다. 1 차원 배열에서는 다음과 같이 쓸 수 있습니다.
int array[] = new int[5];
여기서 int는 데이터 형식이고 array []는 배열 선언이며 new array
5 개의 인덱스가있는 개체가있는 배열입니다.
이와 같이 다음과 같이 2 차원 배열을 작성할 수 있습니다.
int array[][];
array = new int[3][4];
다음 array
은 int 데이터 형식입니다. 먼저 해당 유형의 1 차원 배열을 선언하면 3 행 및 4 열 배열이 생성됩니다.
당신의 코드에서
int[][] multD = new int[5][];
multD[0] = new int[10];
5 개의 행으로 2 차원 배열을 만들었 음을 의미합니다. 첫 번째 행에는 10 개의 열이 있습니다. Java에서는 원하는대로 모든 행의 열 크기를 선택할 수 있습니다.
int rows = 5;
int cols = 10;
int[] multD = new int[rows * cols];
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < cols; c++)
{
int index = r * cols + c;
multD[index] = index * 2;
}
}
즐겨!
이 방법으로 시도하십시오 :
int a[][] = {{1,2}, {3,4}};
int b[] = {1, 2, 3, 4};
이러한 유형의 배열을 Java에서 들쭉날쭉 한 배열이라고합니다.
int[][] multD = new int[3][];
multD[0] = new int[3];
multD[1] = new int[2];
multD[2] = new int[5];
이 시나리오에서 배열의 각 행은 다른 수의 열을 보유합니다. 위의 예에서 첫 번째 행에는 세 개의 열이 있고 두 번째 행에는 두 개의 열이 있고 세 번째 행에는 다섯 개의 열이 있습니다. 아래와 같이 컴파일 타임에이 배열을 초기화 할 수 있습니다 :
int[][] multD = {{2, 4, 1}, {6, 8}, {7, 3, 6, 5, 1}};
배열의 모든 요소를 쉽게 반복 할 수 있습니다.
for (int i = 0; i<multD.length; i++) {
for (int j = 0; j<multD[i].length; j++) {
System.out.print(multD[i][j] + "\t");
}
System.out.println();
}
참고 URL : https://stackoverflow.com/questions/12231453/syntax-for-creating-a-two-dimensional-array
'development' 카테고리의 다른 글
grep으로 한 단어를 제외하려면 어떻게해야합니까? (0) | 2020.02.19 |
---|---|
AngularJS ng- 클릭 중지 (0) | 2020.02.19 |
for 루프를 끊지 않고 배열을 반복하고 항목을 제거 (0) | 2020.02.19 |
이 병합이 필요한 이유를 설명하기 위해 커밋 메시지를 입력하십시오. (0) | 2020.02.19 |
버튼 모서리를 둥글게 만드는 방법은 무엇입니까? (0) | 2020.02.19 |