반응형
배열이란?
- 같은 자료형의 데이터를 여러 개 연속적으로 저장할 수 있는 자료구조이다.
- 각각의 데이터는 인덱스(번호) 를 통해 접근할 수 있다.
- 배열의 인덱스는 항상 0부터 시작한다.
배열은 변수와 마찬가지로 자료형을 함께 선언한다.
자료형[] 배열이름 = new 자료형[개수];
자료형 배열이름[] = new 자료형[개수];
배열 요소
- 배열을 이루는 각각의 데이터를 배열 요소라고 한다.
- 배열 요소는 모두 같은 자료형이어야 한다.
int[] studentIDs = new int[10]; // int형 요소가 10개인 배열 선언
배열 초기화
- 자바에서 배열을 선언하면 그와 동시에 각 요소의 값이 초기화된다.
- 정수형(int) → 0
- 실수형(double, float) → 0.0
- 객체형(String, Array, Object 등) → null
아래와 같이 배열을 선언하면서 동시에 특정 값으로 초기화할 수도 있다.
배열이 초기화 요소의 개수만큼 생성되므로 []안의 개수 생략할수도 있다.
int[] studentIDs = new int[] {101,102,103};
int[] studentIDs = {101,102,103};
배열을 먼저 선언하고, 나중에 값을 초기화하는 경우에는 new int[]를 생략 할 수 없다.
int[] studentIDs;
studentIDs = new int[] {101, 102, 103};
배열 사용하기
선언한 배열의 각 요소에 값을 넣을 때나 배열에 있는 값을 가져올 때는 []를 사용한다.
배열의 첫 번째 요소에 값 10을 저장한다면 다음처럼 코드를 작성한다.
studentIDs[0] = 10;
num[3] = 25; // num배열의 4번째 요소에 값 25를 저장
age = num[3]; // age 변수에 num 배열의 4번째 요소의 값을 저장
배열의 길이(처음 선언한 길이)가 n일 경우, 배열의 순서는 0부터 n-1번 까지이다.
public static void main(String[] args){
int[] num = new int[] {1,2,3,4,5,6,7,8,9,10};
for(int i=0; i<num.length; i++){
System.out.println(num[i]);
// 배열의 첫 번째 요소 num[0]부터 열 번째 요소 num[9]까지 10개 요소 값 출력
}
}
배열의 길이
- 자바의 배열은 배열 길이를 나타내는 length 속성을 가진다.
- 배열의 길이는 처음에 선언한 배열의 전체 요소 개수를 의미한다.
- 전체 배열의 길이를 알고싶은 배열 이름 뒤에 .length 속성을 쓰면 배열의 길이를 반환한다.
public static void main(String[] args){
double[] data = new double[5];
double[0] = 10.0; // 첫 번째 요소의 값 10.0 대입
double[1] = 20.0; // 두 번째 요소의 값 20.0 대입
double[2] = 30.0; // 세 번째 요소의 값 30.0 대입
for(int i=0; i<data.length; i++){ // 배열의 전체 길이만큼 반복
System.out.println(data[i]);
}
}
다차원 배열
이차원 이상으로 구현한 배열
int[][] arr = new int [2][3];
public static void main(String[] args){
int[][] arr = {{1,2,3}, {4,5,6}};
for(int i=0; i< arr.length; i++){ // arr.length 행 길이
for(int k=0; k<arr[i].length; k++){ // arr[i].length 열 길이
System.out.print(arr[i][k]);
}
System.out.println();
}
}
배열은 항상 길이를 정하고 시작한다.
그러나 배열의 길이를 변경해야하는 경우도 반드시 필요하다.
따라서 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공한다.
ArrayList는 객체 배열을 관리할 수 잇는 멤버 변수와 메서드를 제공해서 편하게 사용할 수 있다.
배열의 한계
- 배열은 항상 길이(크기)를 미리 정하고 시작해야 한다.
- 한 번 생성된 배열은 길이를 변경할 수 없다.
배열의 길이 변경 필요성
- 프로그램을 작성하다 보면 데이터의 수가 유동적으로 변하는 경우가 있는데, 기존의 배열로는 대응이 어렵다.
- 길이를 자유롭게 조절할 수 있는 컬렉션이 필요하다.
ArrayList
- 자바는 배열의 한계를 보완하기 위해 ArrayList 클래스를 제공한다.
- ArrayList를 사용하면 배열처럼 고정된 크기에 구애받지 않고 데이터를 유연하게 추가, 삭제할 수 있다.
메서드 | 설명 |
boolean add(E e) | 요소 하나를 배열에 추가한다. E는 배열의 자료형을 의미한다. |
int size() | 배열에 추가된 요소 전체 개수를 반환한다. |
E get(int index) | 배열의 index 위치에 있는 요소 값을 반환한다. |
E remove(int index) | 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다. |
boolean isEmpty() | 배열이 비어있는지 확인한다. |
728x90
반응형
'Java' 카테고리의 다른 글
[자바 프로그래밍 입문] #1 (0) | 2025.04.28 |
---|---|
[JAVA] 코테준비 문자열 #1 (0) | 2024.11.17 |