향상된 for문 (for-each)
for-each 문은 배열이나 컬렉션 같은 데이터 구조에서 각 요소를 간단히 반복하기 위한 문법입니다.
기존의 for문과 달리 인덱스 없이 요소만 처리할 수 있어 코드가 깔끔해집니다.
기본 형식:
for (데이터타입 변수 : 배열명/리스트명) {
// 반복할 코드
}
예제:
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
- numbers 배열의 각 요소가 **num**에 할당되어 반복문이 실행됩니다.
- 인덱스 필요 없이 배열을 순회할 수 있어 간결합니다.
배열 값 추가하기
Java의 기본 배열은 크기가 고정되어 값을 추가하려면 새로운 배열을 만들어야 합니다. 크기가 고정되지 않은 자료 구조를 사용하려면 ArrayList 같은 컬렉션을 사용하는 것이 좋습니다.
배열에 값 추가 (배열 크기 확장):
int[] arr = {1, 2, 3};
int[] newArr = Arrays.copyOf(arr, arr.length + 1); // 배열 크기를 1 늘림
newArr[newArr.length - 1] = 4; // 마지막에 새 값 추가
ArrayList를 사용한 값 추가:
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
list.add(4); // 값 추가
배열 요소 찾기
배열에서 특정 값을 찾을 때는 Arrays.binarySearch() 또는 반복문을 사용할 수 있습니다.
반복문을 이용한 배열 요소 찾기:
int[] arr = {3, 6, 9, 12, 15};
int target = 9;
boolean found = false;
for (int num : arr) {
if (num == target) {
found = true;
break;
}
}
System.out.println(found ? "찾음" : "못 찾음");
Arrays.binarySearch() 사용 (배열이 정렬된 경우):
int[] sortedArr = {3, 6, 9, 12, 15};
int index = Arrays.binarySearch(sortedArr, 9);
if (index >= 0) {
System.out.println("찾음, 인덱스: " + index);
} else {
System.out.println("못 찾음");
}
- 이진 탐색은 배열이 정렬되어 있을 때 빠르게 값을 찾는 방법입니다.
배열의 복사
배열을 복사할 때는 Arrays.copyOf()를 사용하여 크기를 변경하거나, 깊은 복사를 수행할 수 있습니다.
배열 복사:
int[] arr = {1, 2, 3};
int[] copiedArr = Arrays.copyOf(arr, arr.length); // 배열 복사
- Arrays.copyOf()를 이용하면 원래 배열을 새로운 배열로 복사할 수 있습니다.
배열의 정렬
배열을 정렬하려면 Arrays.sort() 메서드를 사용합니다.
배열 정렬:
int[] arr = {5, 3, 8, 1};
Arrays.sort(arr); // 배열 정렬
System.out.println(Arrays.toString(arr)); // [1, 3, 5, 8]
2차원 배열
2차원 배열은 배열 안에 배열이 있는 형태로, 행(row)과 열(column)로 데이터를 저장합니다.
2차원 배열 선언 및 초기화:
int[][] matrix = new int[3][4]; // 3행 4열 배열
값 할당:
matrix[0][0] = 1; // 첫 번째 행, 첫 번째 열에 값 할당
2차원 배열 초기화와 출력:
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (int[] row : matrix) {
for (int col : row) {
System.out.print(col + " ");
}
System.out.println();
}
- 2차원 배열의 각 요소에 접근할 때는 중첩된 for문을 사용합니다.
정리
- 향상된 for문은 배열 및 컬렉션에서 요소를 쉽게 반복할 수 있게 해줍니다.
- 배열의 크기 변경이 필요할 경우 Arrays.copyOf()를 사용하거나, 가변 크기 리스트인 ArrayList를 사용하는 것이 좋습니다.
- 이진 탐색은 정렬된 배열에서 빠른 검색이 가능하며, 배열 복사 및 정렬은 각각 Arrays.copyOf()와 Arrays.sort()로 가능합니다.
- 2차원 배열은 배열 안에 배열을 담을 수 있으며, 주로 행렬 구조 데이터를 처리할 때 사용됩니다.
'Java' 카테고리의 다른 글
자바(Java) 클래스 - 객체 생성 및 활용 , import (1) | 2024.10.22 |
---|---|
자바(Java) 메서드 (1) | 2024.10.22 |
자바(Java) 반복문 do while, for 그리고 별찍기 (1) | 2024.10.22 |
자바(Java)의 switch 조건문 , 반복문 while (0) | 2024.10.22 |
자바(Java)의 배열, 조건문 , 스캐너 (0) | 2024.10.22 |