본문 바로가기
Back_end/java

JAVA [5-2] 다차원 배열

by 8Antony 2022. 5. 18.

다차원 배열 

 

 

2차원 이상의 배열을 의미 (2차원 배열은 배열 요소로 1차원 배열, 3차원 배열은 배열 요소로 2차원 배열)

 

int[][] arr = new int[2][3];

int k = 10;
for(int i = 0; i < arr.length; i++) {
	for(int j = 0; j < arr[i].length; j++) {
    arr[i][j] = k; //인덱스를 이용한 초기화 
    k += 10;
    }
}

for (int i = 0; i < arr.length; i++) {
	for(int j = 0; j < arr[i].length; j++) {
    	System.out.print(arr[i][j]}
    }
    System.out.print();
}

 

 

실행 결과

10 20 30               

40 50 60

 

 

arr[1][1]  arr[1][2]  arr[1][3]

arr[2][1]  arr[2][2]  arr[2][3]

 

 

 

배열 복사 (arraycopy)

 

 

 

- 원소를 하나 더 추가하고 싶을 때 이미 만들어진 방 개수를 변경하는 것은 불가능하므로



- 새로운 배열(방을 더 만듬)에 복사 해준다.



- arraycopy() 는 원래 배열의 시작 주소 값을 새로운 배열에 넣어준다.



% 배열을 복사하여 사이즈업 했을때 기존 배열을 메모리에서 삭제해준다.

 

 

String[] str1 = {"hello" , "java"};
String[] str2 = new String[3];
		
System.arraycopy(str1, 0, str2, 0, str1.length);
//원본, 몇번 쨰 부터 복사, 붙일곳, 몇번 쨰 부터 붙여넣기, 몇개 복사
for(int j = 0; j < str2.length; j++) {
System.out.println(str2[j]);

 

 

 

실행 결과

hello

java

null

 

 

Enhanced for 문

 

 

명시한 배열이나 컬렉션의 길이만큼 반복되어 실행

명시한 변수 이름으로 저장되며, 명령문에서 이 변수를 사용하여 참조 할 수 있다.

 

 

int[] arr = new int[]{1, 2, 3, 4, 5};

for (int e : arr) {
	System.out.print(e);
 }

 

실행 결과 

1 2 3 4 5

 

 

for 문과 Ehanced for 문을 이용하여 모든 배열 요소에 10을 더하는 예제 

 

int[] arr1 = new int[]{1, 2, 3, 4, 5};
int[] arr2 = new int[]{1, 2, 3, 4, 5};

for(int i = 0; i < arr1.length; i++) {
	arr[i] += 10; //각 배열 요소에 10을 더함
}

// 실행결과 11, 12, 13, 14, 15

for (int e : arr2) {
	e += 10; // 각 배열 요소에 10을 더함
}

// 실행결과 1, 2, ,3 ,4 5

 

 

for문을 사용하면, 각 배열 요소의 값을 변경 가능

Enhanced for문 사용하면, 배열 요소의 값을 변경하여도 원본 배열에 영향x

'Back_end > java' 카테고리의 다른 글

JAVA [7] 클래스  (0) 2022.05.24
JAVA [6] 객체 지향 and 열거 타입  (0) 2022.05.24
JAVA [5-1] 배열  (0) 2022.05.18
JAVA [4] 반복문 (for문, while문, do-while문)  (0) 2022.05.17
JAVA [3] 조건문 (IF / Switch case)  (0) 2022.05.17

댓글