반응형
✅ 배열 Array
같은 타입의 여러 변수들을 하나의 묶음으로 다루는 자료구조이다.
배열을 사용하면 많은 양의 데이터를 쉽게 다룰 수 있으며, 여러 개의 변수를 선언하지 않아도 되기 때문에 코드의 가독성을 향상한다.
Java에서 배열은 객체(Object)로 취급된다.
- 배열 변수는 배열의 시작 주소를 참조하며, 배열 요소에 접근하려면 배열 변수와 인덱스를 사용하여 접근한다.
💡 배열 선언
배열 선언은 배열을 생성하기 전에 해당 배열을 다루기 위한 참조 변수를 선언하는 과정이다.
- 데이터 타입 다음에 대괄호([])를 작성한다.
- 배열의 이름은 변수 이름과 같은 규칙을 따른다.
- 배열의 이름은 해당 배열을 다루기 위한 참조 변수의 이름으로 사용한다.
- 참조 변수는 해당 배열의 데이터 타입과 일치해야 한다.
데이터_타입[] 배열_이름;
💡 배열 생성
연속된 메모리 공간을 할당하고, 해당 공간의 시작 주소를 참조할 수 있는 참조 변수를 선언하는 과정이다.
- 연산자 new와 함께 배열의 데이터 타입과 길이를 지정해야 한다.
- 배열의 길이는 생성 시에 명시해야 하며, 생성된 배열의 크기는 변경할 수 없다.
- 동적으로 배열의 길이를 조정해야 한다면, ArrayList나 LinkedList와 같은 자료구조를 사용해야 한다.
데이터타입[] 배열이름 = new 데이터타입[배열길이];
💡 배열 접근
배열의 요소에 접근하기 위해서는 인덱스(index)를 사용한다.
- 인덱스(index)는 배열의 요소마다 붙여진 일련번호로, 각 요소를 구별하는 데 사용된다.
- 인덱스(index)는 0부터 시작하여 배열의 길이-1까지의 범위를 가진다.
- 범위를 벗어나는 인덱스(index)로 접근하면 ArrayIndexOutOfBoundsException이 발생한다.
int형 배열을 선언하고 요소에 접근하는 예시이다.
int[] arr = {1, 2, 3, 4, 5}; // 배열 선언 및 초기화
int a = arr[0]; // 첫 번째 요소에 접근하여 변수에 저장
System.out.println(a); // 1 출력
arr[3] = 10; // 네 번째 요소에 값 변경
System.out.println(arr[3]); // 10 출력
✅ Arrays 클래스
자바에서 제공하는 유틸리티 클래스로, 배열을 다루는 데 유용한 메서드들을 제공한다.
다양한 배열 조작을 위한 정적 메서드(static method)를 제공하며, 객체를 생성하지 않고도 사용할 수 있다.
💡 Arrays 클래스 메서드
- sort(): 배열을 정렬한다.
int[] arr = {3, 1, 4, 2, 5};
Arrays.sort(arr); // arr = {1, 2, 3, 4, 5}
- binarySearch(): 이진 탐색을 사용하여 배열에서 특정 요소를 검색한다.
int[] arr = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(arr, 3); // index = 2
- toString(): 배열의 요소를 문자열로 변환한다.
int[] arr = {1, 2, 3, 4, 5};
String str = Arrays.toString(arr); // str = "[1, 2, 3, 4, 5]"
- equals(): 두 배열이 같은지 비교한다.
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
boolean isEqual = Arrays.equals(arr1, arr2); // isEqual = true
- fill(): 배열의 모든 요소를 특정 값으로 채운다.
int[] arr = new int[5];
Arrays.fill(arr, 1); // arr = {1, 1, 1, 1, 1}
- copyOf(): 배열의 일부분을 새로운 배열로 복사한다.
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3); // arr2 = {1, 2, 3}
- asList(): 배열을 List로 변환한다.
String[] arr = {"Java", "Python", "C++"};
List<String> list = Arrays.asList(arr);
int[] arr = {3, 1, 4, 2, 5};
Arrays.sort(arr); // arr = {1, 2, 3, 4, 5}
int[] arr = {1, 2, 3, 4, 5};
int index = Arrays.binarySearch(arr, 3); // index = 2
int[] arr = {1, 2, 3, 4, 5};
String str = Arrays.toString(arr); // str = "[1, 2, 3, 4, 5]"
int[] arr1 = {1, 2, 3};
int[] arr2 = {1, 2, 3};
boolean isEqual = Arrays.equals(arr1, arr2); // isEqual = true
int[] arr = new int[5];
Arrays.fill(arr, 1); // arr = {1, 1, 1, 1, 1}
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, 3); // arr2 = {1, 2, 3}
String[] arr = {"Java", "Python", "C++"};
List<String> list = Arrays.asList(arr);
반응형
'기타 > 백엔드 기초' 카테고리의 다른 글
자바 Java | 다형성(Polymorphism) 핵심: 오버로딩(Overloading)과 출력 다양성 (1) | 2023.02.16 |
---|---|
자바 Java | 호출 스택(Call Stack) 구조와 원리: 메서드 실행 과정의 이해 (0) | 2023.02.16 |
자바 Java | 객체지향 프로그래밍(OOP)의 핵심 개념: 객체, 클래스, 메소드, 참조 변수에 대한 이해와 활용 방법 (0) | 2023.02.16 |
자바 Java | 문자열 다루기: String 클래스와 커맨드 라인 인자 사용 방법 (0) | 2023.02.16 |
자바 Java | break문과 continue문: 사용 방법과 주의할 점 (0) | 2023.02.15 |
자바 Java | 비교 연산자: 대소 비교, 등가 비교, 문자열 비교 (0) | 2023.02.15 |
자바 Java | 나머지 연산자 %: 음수 계산 규칙, 예외 처리 방법 (0) | 2023.02.15 |
자바 Java | 자료형, 기본형 Primitive Type, 참조형 Reference Type, 형변환 | 매개변수, 논리형, 문자형, 정수형, 실수형 (0) | 2023.02.15 |