배열을 사용하는 이유
같은 타입의 변수를 반복해서 선언하고 반복해서 사용하는 문제를 해결해주기 때문에 사용한다.
배열
배열은 같은 타입의 변수를 사용하기 편하게 하나로 묶어둔 것이다.
//1. 배열 변수 선언
int[] students;
//2. 배열 생성
students = new int[5];
✅ 배열 변수 선언
| 일반적인 변수와 차이점은 int[] 처럼 타입 다음에 대괄호 []가 들어간다.
| 배열 변수를 선언한다고해서 아직 사용할 수 있는 배열이 만들어진 것은 아닙니다.
✅ 배열 생성
| 배열을 사용하려면 배열을 생성해야합니다.
| new는 새로 생성한다는 뜻이고,int[5]는 int형 변수 5개라는 뜻입니다.
✅ 배열과 초기화
| new int[5]라고 하면 총 5개의 int형 변수가 만들어집니다.
| 자바는 배열을 생성할 때 그 내부값을 자동으로 초기화합니다.
| 숫자는 0, boolean은 false, String은 null(없다는 뜻이다)로 초기화 됩니다.
✅ 배열 참조값 보관
| new int[5]로 배열을 생성하면 배열의 크기만큼 메모리를 확보한다
| -> int 형 5개를 사용하면 4byte * 5 = 20byte 를 확보 .
| 배열을 생성하고 나면 자바는 메모리에 어딘가에 있는 이 배열에 접근할 수 있는 참조값(주소)를 반환.
| 앞서 선언한 배열 변수인 int[] students 에 생성된 배열의 참조값을 보관합니다.
배열 사용
인덱스
배열은 변수와 사용법이 비슷합니다.
차이점이 있다면 []사이에 숫자 번호를 넣어주면 됩니다.
배열의 위치를 나타내는 숫자를 인덱스(index)라고 합니다.
✅ 배열은 0부터 시작합니다.
| 인덱스의 범위 0 ~ (n-1)이 됩니다.
| 예를 들어서 5개의 요소를 가지는 배열을 선언 했다면 0~(5-1) = 0 ~ 4가 됩니다.
배열에 값 대입
배열에 값을 대입하든 배열의 값을 사용하든 간에 일반적인 변수와 사용법은 같습니다.
[]를 통해 인덱스만 넣어주면 됩니다.
//1. 배열에 값을 대입
students[0] = 90;
//2. 변수에 있는 참조값을 통해 실제 배열에 접근 (예시로 x001이라는 메모리 주소를 가정하였음)
x001[0] = 90;
배열 값 읽기
인덱스를 통해서 원하는 요소를 찾습니다.
//1. 변수 값 읽기
System.out.println("학생1 점수 : " + sutdents[0]);
//2. 변수에 있는 참조값을 통해 실제 배열에 접근, 인덱스를 사용하여 해당 위치 요소에 접근
System.out.println("학생1 점수 : " + x001[0]);
//3. 배열의 값을 읽어옴
System.out.println("학생1 점수 : " + 90);
리펙토링
Refactoring은 기존의 코드 기능은 유지하면서 내부 구조를 개선하여 가독성을 높이고, 유지보수를 용이하게 하는 과정.
➕ 중복을 제거 해줍니다.
➕ 복잡성을 줄입니다.
➕ 이해하기 쉬운 코드로 만들기 위해 수행합니다.
2차원 배열
2차원 배열은 행(ROW)과 열(COLUMN)로 구성됩니다.
2차원 배열은 int[][] arr = new int[2][3]와 같이 선언하고 생성합니다.
arr[1][2]와 같이 사용하는데, 먼저 행번호를 찾고, 그 다음에 열 번호를 찾으면 됩니다.
향상된 for문
for-each문이라고도 부릅니다. (Enhanced For Loop)
각각의 요소를 탐색한다는 의미입니다.
기존 for문 보다 더 편리하게 사용할 수 있습니다.
for (변수 : 배열 또는 컬렉션) {
// 배열 또는 컬렉션의 요소를 순회하면서 수행할 작업
}
✅ 일반 for문과 동일하게 작동합니다.
| 향상된 for문은 배열의 인덱스를 사용하지 않고, 종료 조건을 주지 않아도 됩니다. 단순하게 처음부터 끝까지 돌립니다.
| : 의 오른쪽에 탐색할 배열이나 컬렉션을 선택하고, 왼쪽에 찾은 값을 저장할 변수를 선언합니다.
| 배열의 인덱스를 사용하지 않고도 배열의 요소를 순회할 수 있기 때문에 코드가 간결하고 가독성이 좋습니다.
향상된 for문을 사용하지 못하는 경우
향상된 for문에는 증가하는 인덱스 값이 감추어져 있습니다. 따라서 증가하는 인덱스 값을 직접 사용해야 하는 경우에는
사용할 수 없습니다.
출처 | 김영한 자바 입문
'language > Java' 카테고리의 다른 글
Java Iteration #자바 반복문 (5) | 2025.02.03 |
---|---|
Java Condition #자바 조건문 (8) | 2025.01.30 |
Java Operator #자바 연산자 (10) | 2025.01.24 |
Java Variable #자바 변수 (5) | 2025.01.23 |
주석(comment) (7) | 2025.01.21 |