기초 JAVA 9강 - 다차원배열

Whatever·2021년 9월 16일
0

기초 JAVA

목록 보기
9/26

다차원배열

  • 배열 안에 배열이 저장되어 있는 형태

1차원
int[]array1;
2차원
int[][] array2;
3차원
int[][][] array3;

배열 초기화방법1)
int[][] arr = new int[2][3]; 2칸짜리 배열 안에 각 칸마다 3칸짜리 배열이 생성된다.
2행3열

arr(변수) = 100번지(주소)

100번지
{200번지, 300번지}

200번지
{0, 0, 0}

300번지
{0, 0, 0}

배열 초기화방법2)
int arr2[][] = new int[][]{ {1, 2, 3}, {4, 5, 6} };

배열 초기화방법3)
int[] arr3[] = { {1, 2, 3},
{4, 5, 6},
{7, 8, 9,} };

배열 초기화방법4)
int[][] arr4 = new int [3][]; 가변배열 - 행은 고정, 열만 바꿀 수 있음.

for(int i = 0; i < arr.length; i++) - 1차원에 접근하기 위한 for문, arr.length는 arr[2][3]일 때, 2이다.
for(int j = 0; j < arr[i].length; j++) - 2차원에 접근하기 위한 for문, " arr[2][3]일 때, 3이다.

arr가 다차원 배열이기 때문에 arr[0] = 10; =>처럼 1차원에 값을 저장할 수 없다.(배열이 위치해있기 때문에)
arr[0] = new int[5];
arr[0][0] = 10;
arr[0][1] = 20;
arr[1][0] = 100; 처럼 각 배열 안의 배열에 값을 저장해야 한다.

System.out.println(arr.length); => 1차원 배열의 길이
System.out.println(arr[0].length); => 2차원 배열의 길이 -- 0번 인덱스에 있는 배열의 길이
System.out.println(arr[1].length); -- 1번 인덱스에 있는 배열의 길이

 int[][] scores = new int [3][5];//int[학생수][과목수]
	int[] sum = new int[scores.length]; //합계
	double[] avg = new double[scores.length]; //평균
	for(int i = 0; i< scores.length; i++){
		for (int j = 0; j <scores[i].length; j++){ 
			scores[i][j] = (int)(Math.random() * 101);
		}
		System.out.println(Arrays.toString(scores[i]));
	}
	for(int i = 0; i < scores.length; i++){
		for(int j = 0; j <scores[i].length; j++){
			sum[i] += scores[i][j];
		}
		avg[i] = (double)sum[i] / scores[i].length;
		System.out.println("sum: " + sum[i] +"/ avg : " + avg[i]);

0개의 댓글

관련 채용 정보