본문 바로가기
기타/백엔드 기초

자바 Java | 배열(Array) 다루기: 선언, 생성, 접근, Arrays 클래스 활용

by YUNI Heo 2023. 2. 15.
반응형

 

✅ 배열 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);
반응형