배열이란?
자바에서 배열은 동일한 유형의 여러 값을 저장할 수 있는 데이터 구조이다. 배열은고정된 크기를 가지며, 각 요소는 인덱스를 사용하여 액세스된다. 자바 배열에 대한 기본사항은 아래와 같다.
배열을 선언하려면 배열 유형과 배열 변수의 이름을 지정해야 한다. 배열을 생성하려면 new 키워드를 사용하여 배열의 크기를 지정한다.
// 정수 배열 선언과 생성
int[] 정수배열 = new int[5];
// 문자열 배열 선언과 생성
String[] 문자열배열 = new String[3];
위의 예제에서 int 유형의 정수배열은 5개의 정수를 저장할 수 있는 배열이 되고, String 유형의 문자열배열은 3개의 문자열을 저장할 수 있는 배열이 된다.
배열의 요소는 0부터 시작하는 인덱스를 사용하여 액세스됩니다. 요소에 접근하려면 배열 변수 이름 뒤에 대괄호 안에 인덱스를 넣는다.
int 첫번째요소 = 정수배열[0];
문자열배열[1] = "두 번째 문자열";
배열의 인덱스는 0부터 시작하므로, 첫 번째 요소의 인덱스는 0이고, 두 번째 요소의 인덱스는 1이다.
배열을 선언과 동시에 초기값을 지정할 수 있다. 이를 통해 배열의 요소에 초기값을 할당할 수 있다.
int[] 초기화된배열 = {1, 2, 3, 4, 5};
배열의 크기는 초기값의 수에 따라 자동으로 결정된다.
배열의 길이 또는 크기를 알고자 할 때 length 속성을 사용한다.
int 배열길이 = 초기화된배열.length; // 배열길이는 5
자바는 다차원 배열도 지원한다. 2차원 배열은 행과 열로 구성되며, 3차원 배열은 행, 열 및 깊이로 구성된다.
int[][] 이차원배열 = new int[3][4]; // 3행 4열의 2차원 배열
배열 요소를 반복하려면 for문을 사용하거나 for-each 루프를 활용할 수 있다.
for (int i = 0; i < 초기화된배열.length; i++) {
System.out.println(초기화된배열[i]);
}
for (int 요소 : 초기화된배열) {
System.out.println(요소);
}
배열 추가 설명
배열은 어떤 데이터 유형도 저장할 수 있다. 예를 들어, int, double, String, 객체 등 다양한 데이터 유형을 저장할 수 있는 배열을 생성할 수 있다. 배열의 유형은 배열 변수의 선언 시 지정된다.
int[] 정수배열 = new int[5]; // 정수 배열
double[] 실수배열 = new double[3]; // 실수 배열
String[] 문자열배열 = new String[4]; // 문자열 배열
Object[] 객체배열 = new Object[2]; // 객체 배열
배열을 복사하려면 System.arraycopy() 매서드나 Arrays.copyOf() 매서드를 사용할 수 있다.
int[] 원본배열 = {1, 2, 3, 4, 5};
int[] 복사된배열 = new int[원본배열.length];
System.arraycopy(원본배열, 0, 복사된배열, 0, 원본배열.length);
배열에서 유효하지 않은 인덱스에 접근하려고 하면ArrayIndexOutOfBoundsException과 같은 예외가 발생한다. 이것은 배열의 범위를 벗어나는 인덱스를 사용하면 발생한다.
자바에서는 가변 길이 매개변수를 사용하여 메서드에 배열 형태로 인수를 전달할 수 있다.
public void 가변길이매개변수예제(int... 숫자들) {
for (int 숫자 : 숫자들) {
System.out.println(숫자);
}
}
이를 호출할 때 배열을 직접 생성하지 않고 여러 값을 전달할 수 있다.
가변길이매개변수예제(1, 2, 3, 4, 5);
배열은 어디에 쓰일까?
현업에서 가장 일반적인 용도 중 하나는 데이터의 저장과 관리이다. 예를 들어, 데이터베이스에서 검색한 결과를 배열에 저장하거나, 파일에서 읽은 데이터를 배열에 저장하여 처리하는 경우가 있다.
// 데이터베이스 쿼리 결과를 배열에 저장
ResultSet resultSet = statement.executeQuery("SELECT * FROM 테이블");
List<String> 결과목록 = new ArrayList<>();
while (resultSet.next()) {
결과목록.add(resultSet.getString("열명"));
}
String[] 결과배열 = 결과목록.toArray(new String[0]);
배열을 사용하여 데이터를 필터링하거나 정렬하는 경우가 있다. 예를 들어, 특정 조건을 충족하는 요소를 배열에서 찾거나 배열 요소를 정렬할 수 있다.
// 배열에서 특정 값 찾기
int 찾을값 = 42;
for (int i = 0; i < 배열.length; i++) {
if (배열[i] == 찾을값) {
System.out.println("값 " + 찾을값 + "을 발견했습니다.");
}
}
현업에서는 대량의 데이터를 처리하는 작업이 흔하며, 배열은 이를 처리하는 데 유용하다. 예를 들어, 배열의 각 요소를 반복하여 통계 계산, 데이터 변환, 그래프 생성 등의 작업을 수행할 수 있다.
// 배열의 요소 합계 계산
int 합계 = 0;
for (int i = 0; i < 배열.length; i++) {
합계 += 배열[i];
}
배열은 다양한 알고리즘 및 자료구조를 구현하는 데 사용된다. 검색 알고리즘, 정렬 알고리즘, 스택, 큐, 해시 테이블, 힙 등의 자료구조를 구현할 때 배열을 기반으로 사용할 수 있다.
배열은 GUI(그래픽 사용자 인터페이스) 및 그래픽 프로그램에서 픽셀, 이미지, 색상 정보 등을 저장하고 처리하는 데 사용된다.
int[][] 픽셀데이터 = new int[가로][세로];
// 픽셀 데이터에 대한 처리 및 그림 그리기