Java를 배워보자/2. 자바 기본 문법

자바 배열

_Blue_Sky_ 2024. 9. 26. 16:32
728x90
728x90

자바 배열: 깊이 있게 파헤치는 상세 가이드

자바 배열이란 무엇일까요?

자바에서 배열은 같은 타입의 데이터들을 연속된 메모리 공간에 저장하는 자료구조입니다. 마치 서랍장의 서랍처럼, 각각의 데이터를 특정한 위치(인덱스)에 저장하여 관리할 수 있죠.

  • 왜 배열을 사용할까요?
    • 여러 데이터를 한꺼번에 관리: 변수 여러 개를 선언하는 것보다 효율적입니다.
    • 반복문과 함께 사용: 배열의 모든 요소를 순차적으로 처리하기 쉽습니다.
    • 다양한 알고리즘의 기반: 정렬, 검색 등의 알고리즘을 구현하는 데 필수적입니다.

배열 선언과 생성

// 배열 선언
int[] numbers; // 정수형 배열 선언

// 배열 생성 (크기 5)
numbers = new int[5];
 
  • 배열 타입: 배열에 저장할 데이터의 타입을 명시합니다. (int, double, String 등)
  • 배열 이름: 배열을 식별하기 위한 이름입니다.
  • 배열 크기: 배열에 저장할 수 있는 요소의 개수를 나타냅니다.

배열 요소에 접근하기

numbers[0] = 10; // 첫 번째 요소에 10 저장
System.out.println(numbers[2]); // 세 번째 요소 출력
 
  • 인덱스: 배열의 각 요소는 0부터 시작하는 인덱스를 가지며, 이 인덱스를 통해 요소에 접근합니다.

배열 초기화

// 배열 선언과 동시에 초기화
int[] scores = {80, 90, 75};

// for문을 이용한 초기화
for (int i = 0; i < numbers.length; i++) {
    numbers[i] = i * 10;
}
 

배열의 길이

int length = numbers.length; // 배열의 길이 가져오기
 
  • length 속성: 배열의 요소 개수를 반환합니다.

다차원 배열

 
int[][] matrix = new int[3][4]; // 3행 4열의 2차원 배열
 
 
  • 다차원 배열: 배열 안에 배열을 저장하여 여러 차원의 데이터를 표현할 수 있습니다.

배열의 장단점

  • 장점:
    • 데이터 관리 효율성: 같은 타입의 데이터를 효율적으로 관리할 수 있습니다.
    • 반복 처리 용이: for문 등을 이용하여 모든 요소를 쉽게 처리할 수 있습니다.
    • 메모리 효율성: 연속된 메모리 공간을 사용하여 캐시 활용도를 높일 수 있습니다.
  • 단점:
    • 고정된 크기: 배열의 크기는 생성 시에 결정되므로, 크기를 동적으로 변경하기 어렵습니다.
    • 타입 제한: 배열은 한 가지 타입의 데이터만 저장할 수 있습니다.
    • 배열 범위 초과 예외: 인덱스가 유효한 범위를 벗어나면 ArrayIndexOutOfBoundsException이 발생할 수 있습니다.

배열 활용 예시

  • 숫자 저장: 학생 성적, 온도 데이터 등 숫자형 데이터를 저장합니다.
  • 문자열 저장: 이름, 주소 등 문자열 데이터를 저장합니다.
  • 객체 저장: 객체 배열을 통해 여러 객체를 관리합니다.
  • 정렬 알고리즘: 버블 정렬, 선택 정렬 등 다양한 정렬 알고리즘의 기반이 됩니다.
  • 검색 알고리즘: 이진 검색 등의 검색 알고리즘을 구현하는 데 사용됩니다.

추가적으로 알아두면 좋은 것들

  • Arrays 클래스: 배열을 다루는 다양한 유틸리티 메소드를 제공합니다. (sort, copyOf, fill 등)
  • ArrayList: 크기를 동적으로 변경할 수 있는 리스트 자료구조입니다. 배열의 단점을 보완하기 위해 사용됩니다.
  • 배열 복사: 배열을 복사할 때는 단순히 배열 변수를 복사하는 것이 아니라, 요소 하나하나를 복사해야 합니다.

자바 배열은 프로그래밍에서 가장 기본적이면서도 중요한 개념입니다. 다양한 예제를 통해 직접 배열을 활용해보면서 더욱 깊이 있는 이해를 얻을 수 있을 것입니다.

728x90
728x90

'Java를 배워보자 > 2. 자바 기본 문법' 카테고리의 다른 글

자바 제어문  (0) 2024.09.26
자바 연산자  (0) 2024.09.26
자바 변수와 자료형  (0) 2024.09.26