1. 배열 선언, 생성 및 초기화 방법
✅ 배열 (Array)
: 배열은 동일한 타입의 여러 변수를 연속적으로 저장할 수 있는 구조
- 데이터의 집합이나 순차적인 자료를 효율적으로 관리하기 위해 사용
- Java에서는 배열을 사용하여 변수를 저장할 수 있음.
- 인덱스를 사용하여 개별 변수에 접근할 수 있습니다.
- 인덱스 0부터 시작합니다.
✅ 배열 선언
: Java에서 배열을 선언하는 방법은 타입 뒤에 대괄호([])를 사용합니다.
int[] numbers;
String[] names;
✅ 배열 생성
: 배열 선언 후 new 키워드를 사용하여 배열을 생성합니다.
배열의 크기도 함께 지정해줍니다.
numbers = new int[5]; // 5개의 정수를 저장할 수 있는 배열 생성
names = new String[3]; // 3개의 문자열을 저장할 수 있는 배열 생성
✅ 배열 초기화
: 배열을 선언과 동시에 초기화할 수 있음.
new 키워드 없이 직접적으로 값을 할당
int[] numbers = {1, 2, 3, 4, 5};
String[] fruits = {"Apple", "Banana", "Cherry"};
// 배열이 이미 선언된 후 나중에 값을 할당하려면 각 인덱스를 사용하여 초기화할 수 있음.
numbers[0] = 1;
numbers[1] = 2;
// ... and so on
fruits[0] = "Apple";
fruits[1] = "Banana";
✅ 배열과 반복문
✅ for문
: for문은 배열의 길이(length 속성)만큼 반복합니다.
int[] numbers = {1, 2, 3, 4, 5};
// for 반복문을 사용하여 배열의 각 원소 출력
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers);
}
✅ for-each문
for(int num: numbers)
: numbers 배열의 각 원소에 대해 반복합니다. 각 반복마다의 원소가 num 변수에 할당되고, 이 변수를 반복문 내에서 사용할 수 있음.
for-each 구문은 배열어나 컬렉션의 각 원소에 순차적으로 접근하는데는 휼륭하지만, 특정 위치의 원소에 대한 인덱스 정보는 제공하지 않음.
int[] numbers = {1, 2, 3, 4, 5};
// for-each 반복문을 사용하여 배열의 각 원소 출력
for (int num : numbers) {
System.out.println(num);
}
2. 2차원 배열의 선언과 활용
✅ 2차원 배열
: 2차원 배열은 "배열의 배열"로 생각할 수 있음
✅ 2차원 배열 선언
: 2차원 배열을 선언하는 방법은 데이터 타입 뒤에 두 쌍의 대괄호([][])를 사용합니다.
int[][] matrix;
String[][] table;
✅ 2차원 배열 생성
: 선언 후 new 키워드를 사용하여 2차원 배열을 생성.
- 행과 열의 크기를 지정할 수 있음.
matrix = new int[3][4]; // 3행 4열의 정수 행렬 생성
table = new String[2][3]; // 2행 3열의 문자열 테이블 생성
✅ 2차원 배열 초기화
: 2차원 배열을 선언과 동시에 초기화할 수 있음.
int[][] matrix = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
✅ 2차원 배열의 활용
- 반복문과 함께 사용
// 2차원 배열 선언 및 초기화
int[][] matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
// for-each 구문을 사용하여 2차원 배열의 각 원소 출력
for (int[] row : matrix) {
for (int num : row) {
System.out.print(num + " ");
}
System.out.println(); // 행이 바뀔 때마다 줄바꿈
}
▶️ 출력 결과
1 2 3
4 5 6
7 8 9
- 데이터 저장 및 처리
- 2차원 배열은 행렬 연산, 이미지 처리, 게임 보드 등 다양한 애플리케이션에서 데이터를 저장하고 처리하는 데 사용됨.
3. 다차원 배열의 길이와 데이터 접근 방법
✅ 다차원 배열의 길이 확인
: 다차원 배열에서 .length 속성은 가장 바깥쪽 차원의 길이를 반환. 내부 차원의 길이를 알아내기 위해서는 해당 차원의 인덱스를 지정하고 .length 속성을 사용함.
int[][] matrix = {
{1, 2, 3},
{4, 5},
{6, 7, 8, 9}
};
int outerLength = matrix.length; // 3
int innerLength1 = matrix[0].length; // 3
int innerLength2 = matrix[1].length; // 2
✅ 다차원 배열의 데이터 접근
: 다차원 배열에서 데이터에 접근할 시 각 차원에 해당하는 인덱스 사용.
- 2차원 배열은 2개의 인덱스, 3차원 배열은 3개의 인덱스
- 2차원 배열
int value = matrix[1][0]; // value는 4
- 3차원 배열
int[][][] tensor = {
{
{1, 2}, {3, 4}
},
{
{5, 6}, {7, 8}
}
};
int value2 = tensor[1][0][1]; // value2는 6
- 첫 번째 차원은 2개의 2차원 배열을 포함하고 있음. / 이 차원을 통해 tensor[0] 또는 tensor[1]로 접근.
- 두 번째 차원은 2차원 배열 내부의 각 1차원 배열에 접근. / tensor[0][0], tensor[0][1], tensor[1][0], tensor[1][1] 로 접근.
- 세 번째 차원은 가장 안쪽의 원소들에 직접 접근 / tensor[0][0][0], tensor[0][0][1] 로 접근
✅ 다차원 배열의 데이터 수정
: 특정 인덱스를 사용하여 다차원 배열의 데이터를 수정
matrix[2][3] = 10; // 3행 4열의 값을 10으로 변경
tensor[0][1][1] = 40; // 첫 번째 행렬의 2행 2열 값을 40으로 변경
✅ 다차원 배열 순회
: 중첩된 반복문을 사용하여 다차원 배열의 모든 요소를 순회
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix.length; j++) {
System.out.print(matrix[j] + " ");
}
System.out.println();
}
1) 외부 for 루프
: matrix.length는 행렬의 행의 개수를 반환
👉 2차원 배열 matrix의 첫 번째 차원 (행)에 대한 반복을 처리
2) 내부 for 루프
: 현재 행(matrix)의 각 열에 대한 반복을 처리.
👉 matrix.length는 현재 행의 열의 개수 반환
3) 원소 출력
: 행과 열의 원소를 출력.
👉 각 원소 다은에는 공백이 출력되어 원소들이 구분됨.
4) 줄 바꿈
: 내부 루프가 종료되면 System.out.println(); 이 호출되어 줄 바꿈이 일어남.
👉 각 행이 새로운 줄에 출력됨.
4. 배열의 주요 메서드
✅ 배열 정렬 - Arrays.sort()
: 배열의 모든 요소를 오름차순으로 정렬
int[] arr = {3, 1, 4, 1, 5, 9};
Arrays.sort(arr); // arr는 {1, 1, 3, 4, 5, 9}로 정렬됩니다.
✅ 배열 검색 - Arrays.binarySearch()
: 오름차순으로 정렬된 지정된 요소의 위치를 찾음.
👉 요소에 배열이 없으면 음수값을 반환.
int[] sortedArr = {1, 3, 4, 6, 8};
int index = Arrays.binarySearch(sortedArr, 4); // index는 2
✅ 배열 비교 - Arrays.equals()
: 두 배열의 모든 요소가 동일한지 확인
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = {1, 2, 3, 4, 5};
boolean isEqual = Arrays.equals(arr1, arr2); // isEqual는 true
✅ 배열을 문자열로 - Arrays.toString()
: 배열의 내용을 문자열 형태로 쉽게 표시할 수 있음.
int[] arr = {1, 2, 3, 4, 5};
String str = Arrays.toString(arr); // str는 "[1, 2, 3, 4, 5]
✅ 배열 복사 - Arrays.copyOf()
: 배열의 특정 부분을 복사하여 새 배열 생성.
int[] original = {1, 2, 3, 4, 5};
int[] copied = Arrays.copyOf(original, 3); // copied는 {1, 2, 3}
✅ 배열 채우기 - Arrays.fill()
: 배열의 모든 요소를 지정된 값으로 채움.
int[] arr = new int[5];
Arrays.fill(arr, 10); // arr는 {10, 10, 10, 10, 10}
'Java' 카테고리의 다른 글
Chap 03. 클래스/객체 (0) | 2024.04.22 |
---|---|
Chap 02. 배열과 문자열 (1) | 2024.04.20 |
Chap 01. 객체지향 프로그래밍 (0) | 2024.04.20 |
Java 조건문 & 반복문 (0) | 2024.01.12 |
Java 프로그래밍 기초 & 개발 환경 설정 (0) | 2024.01.09 |
댓글