본문 바로가기

국비과정/JAVA (기초)

20230613 _[8일차]_04. DynamicArray (동적가변배열)

[ 동적 가변 배열 ]

package jun13;

import java.util.Iterator;

//동적 가변 배열
public class DynamicArray01 {
	public static void main(String[] args) {
		
		char[][] stars = new char[10][]; //동적가변배열로 선언

		// 모든 집을 돌아다니면서 동적으로 방을 만들어줘야 사용가능합니다.

		for (int i = 0; i < stars.length; i++) {
			stars[i] = new char[i+1];	// --> 이해중요* // 2차원배열 = 배열 속 배열
			for (int j = 0; j < stars[i].length; j++) {
				stars[i][j] = '*';		// 따옴표 하나(char) 주의*
			}
		}
		
		// print
		for (int i = 0; i < stars.length; i++) {
			for (int j = 0; j < stars[i].length; j++) {	// j < stars[i].length 범위중요*
				System.out.print(stars[i][j]);
			}
			System.out.println(" ");
		}
		
	}
}

[ 동적 가변 배열 + 랜덤정수 ]

package jun13;

import java.util.Arrays;
import java.util.Iterator;

public class DynamicArray02 {
	public static void main(String[] args) {

		char[][] stars = new char[10][];
		// 내부 크기를 랜덤하게 잡아주세요. 1~10까지
		
		for (int i = 0; i < stars.length; i++) {
			int num = (int) (Math.random()*10 +1);	// stars[i] = new char[(int) (Math.random()*10 +1);]; 내부생성
			// 값대입
			stars[i] = new char[num];
			for (int j = 0; j < stars[i].length; j++) {
				stars[i][j] = '*';
			}
		}
		
		// print
		for (char[] cs : stars) {
			System.out.println(Arrays.toString(cs ));
		}
		
	}

}

 

* 배열에 너무 집중할 필요는 없지만,

추후 배열을 기반으로 만들어진 것들을 많이 사용할 예정이니

이해는 하고 넘어가기*


[ 배열복사 ] _깊은복사 & 얕은복사

		int[] arr01 = new int[] {50, 40, 30, 20, 10};
		int[] arr02 = arr01; // arr01과 arr02는 연결( 2가 1의 값을 참조 -> 즉, 메모리 주소값 복사)
		int[] arr03 = arr02; // 얕은 복사
		arr01[0] = 100;
		arr03[0] = 99;		// 연결되어 있는 모든 배열의 값이 함께 변경됨
		
		System.out.println(Arrays.toString(arr01));	// [99, 40, 30, 20, 10]
		System.out.println(Arrays.toString(arr02));	// [99, 40, 30, 20, 10]
		System.out.println(Arrays.toString(arr03));	// [99, 40, 30, 20, 10]
		
        
		// .arraycopy 메서드사용
		int[] arr04 = new int[3];
		System.arraycopy(arr02, 0, arr04, 0, 3);  // arr02의, 0번째값부터, arr04에, 3개복사
		System.out.println(Arrays.toString(arr04)); // [99, 40, 30]

 책 p.195~