Coding/Java

Java Arrays(배열)

heyoon2j 2020. 9. 16. 01:21

■ Java Arrays(배열)

- 하나의 변수로 여러 개의 값을 다룰 수 있다.

- 동일 자료형만 다룰 수 있다.

- 한번 생성한 배열의 크기는 변하지 않는다.

- 배열에 속한 값은 메모리의 연속된 위치를 갖는다.


1. 배열의 생성

• 배열 선언

int[] integers;
int cStyleIntegers[]; // 가독성이 떨어지므로 안 쓰는 표현, old c-style

 

• 배열의 생성과 초기화

// 1. 생성 후 초기화
int[] integers2 = new int[10];
integers2[0] = 5;
integers2[1] = 10;
integers2[2] = 9;


// 2. 생성과 동시에 초기화
int[] integers3 = new int[]{5, 7, 2, 3, 4};
int[] integers4 = {1, 2, 3 ,4, 5};

 


2. 배열의 접근

• 인덱스를 이용한 접근

float[] floats = new float[5];
for(int i = 0; i < floats.length; i++){ // for 문을 이용한 초기화
	floats[i] = (float)(i * 0.25);
}

 

• 향상된 for을 이용한 접근

for(float floatVal : floats){
	System.out.println(floatVal);
}

 


3. 배열의 크기 변경

- 배열의 크기는 변경이 불가능하므로, 새로운 배열을 만들고 데이터를 옮겨야 한다. 

int[] src2 = {1, 2, 3, 4, 5};
int[] dst2 = new int[10];

for(int integer2 : dst)
	System.out.println(integer2);
    
// System.arraycopy(src2, 0, dst2, 0, src2.length);

* System.arraycopy()를 이용하여 Array 값을 Copy 할 수 있다.

 


■ N-D Arrays(다차원 배열)

- 배열이 배열을 담고 있다.

- 수학에서 말하는 점 -> 선 -> 면 -> 공간 -> 4차원 -> 5차원 -> ...


1. 다차원 배열의 생성

• 다차원 배열 선언

int[][] ints;
int[] halfCStyle[]; // Hybrid
int cStyle[][]; // old...

 

• 다차원 배열의 생성

// 1. 여러 차원을 동시에 생성
int[][] ints1 = new int[10][5];


// 2. 상위 차원의 배열부터 생성
int[][] ints2 = new int[10][];
for(int i = 0; i <ints2.length; i++){
	ints2[i] = new int[ints1[0].length];
}

int[][] ints3 = new int[5][];
ints3[0] = new int[10];
ints3[1] = new int[5];

 

• 다차원 배열의 초기화

int[][] ints4 = {{1, 2, 3}, {4, 5, 6}}; // int [2][3]
int[][] ints5 = {{1, 3, 2}, {1, 2}, {4, 5, 6}}; // int [3][]

 


2. 배열의 접근

• 인덱스를 이용한 접근

for(int i = 0; i < ints5.length; i++){
	System.out.printf("[%d] : ",ints5[i].length);

	for(int j = 0; j < ints5[i].length; j++)
		System.out.printf("%d ",ints5[i][j]);
	System.out.println();
}

 

• 향상된 for을 이용한 접근

for(int[] array : ints5){
	System.out.printf("[%d] : ",array.length);
    
	for(int val : array)
		System.out.printf("%d ",val);
	System.out.println();
}

 

 

 

'Coding > Java' 카테고리의 다른 글

Java Class(클래스)  (0) 2020.09.16
Java String(문자열)  (0) 2020.09.16
Java Loops(반복문)  (0) 2020.09.16
Java Conditional(조건문)  (0) 2020.09.16
Java Operator(연산자)  (0) 2020.09.15