배열

  • 동일한 자료형의 순차적 자료 구조
  • 인덱스 연산자[]를 이용하여 빠른 참조가 가능
  • 물리적 위치와 논리적 위치가 동일
  • 배열의 순서는 0부터 시작
  • 자바에서는 객체 배열을 구현한 ArrayList를 많이 활용함

배열 선언과 초기화

  • 배열 선언하기
int[] arr1 = new int[10];
int arr2[] = new int[10];



  • 배열 초기화 하기
    • 배열은 선언과 동시에 자료형에 따라 초기화 됨
    • 정수는 0, 실수는 0.0, 객체는 null
    • 필요에 따라 초기값을 지정할 수 있음
int numbers = new int[] {10, 20, 30}; //개수 생략해야 함

int[] numbers = {10, 20, 30}; //new int[] 생략 가능

int[] ids;
ids = new int{10, 20, 30}; // 선언후 배열을 생성하는 경우는 new int[] 생략할 수 없음


배열 사용하기

  • []인덱스 연산자 활용 - 배열 요소가 저장된 메모리의 위치를 연산하여 찾아줌
  • 배열을 이용하여 합을 구하기
public class ArrayTest {

	public static void main(String[] args) {
		
		int[] arr = new int[10];
		int total = 0;
		
		for (int i = 0, num = 1; i < arr.length; i++) {
			arr[i] = num++;
			
		}
		
		//향상된 for loop
		for (int num : arr) {
			total+= num;
		}
		
		System.out.println(total);

	}

}
55


배열의 길이와 요소의 개수는 동일하지 않음

  • 배열을 선언하면 개수만큼 메모리가 할당되자만 실제 요소(data)가 없는 경우도 있음
  • 배열의 length 속성은 배열의 개수를 반환해주기 때문에 요소의 개수와는 다름
  • length를 활용하여 오류가 나는 경우


문자 배열을 만들어 A-Z까지 배열에 저장하고 출력

public class ArrayTest {

	public static void main(String[] args) {
		
		char[] alphabets = new char[26];
		char ch = 'A';
		
		for (int i = 0; i < alphabets.length; i++) {
			alphabets[i] = ch++;
			
		}
		for (char alpha : alphabets) {
			System.out.println(alpha + ", " + (int)alpha);
		}

	}

}


결과

A, 65
B, 66
C, 67
D, 68
E, 69
F, 70
G, 71
H, 72
I, 73
J, 74
K, 75
L, 76
M, 77
N, 78
O, 79
P, 80
Q, 81
R, 82
S, 83
T, 84
U, 85
V, 86
W, 87
X, 88
Y, 89
Z, 90



향상된 for loop

  • 배열의 n개 요소를 0부터 n-1까지 순차적으로 순회할 때 간단하게 사용할 수 있음
for( 변수 : 배열) {

}

Leave a comment