Categories: Java

Java 자바 배열 (Array) 선언 및 사용 방법

배열이란?

자바 배열은 동일한 자료형의 여러 요소를 하나의 변수에 저장하는 자료구조입니다. 이 변수는 배열이라 불리며, 각 요소는 인덱스를 이용하여 접근할 수 있습니다. 자바에서 배열은 정적으로 선언되며, 한 번 생성된 배열의 크기는 변경할 수 없습니다. 배열은 프로그램에서 데이터를 효율적으로 관리하고 처리하는 데에 자주 사용되며, 순회, 검색, 정렬 등 다양한 연산에 활용됩니다.

배열의 특징

  1. 동일한 데이터 유형의 요소:
    • 배열은 동일한 데이터 유형의 요소들로 이루어져 있습니다. 예를 들어, 정수 배열은 모든 요소가 정수입니다.
  2. 고정된 크기:
    • 배열은 생성될 때 크기가 고정되며, 한 번 지정된 크기는 변경할 수 없습니다. 이는 메모리를 미리 할당하는 정적 할당을 의미합니다.
  3. 연속된 메모리:
    • 배열의 요소들은 메모리 상에서 연속적으로 저장되어 있어, 인덱스를 통한 효율적인 접근이 가능합니다.
  4. 편리한 인덱스 사용:
    • 배열은 각 요소에 대한 인덱스를 제공하여 빠르고 쉬운 접근을 가능하게 합니다. 이로 인해 요소에 접근하거나 값을 변경하는 것이 용이합니다.
  5. 메모리 주소와 참조:
    • 배열 변수는 해당 배열의 시작 메모리 주소를 가리키는 참조로 볼 수 있습니다. 이를 통해 배열에 효과적으로 접근할 수 있습니다.
  6. 다차원 배열:
    • 자바에서는 다차원 배열도 지원됩니다. 이는 배열 안에 배열이 포함된 형태로, 행렬이나 3D 공간 등을 모델링할 수 있습니다.

배열 생성 방법

자바에서 배열을 선언하는 구조는 다음과 같습니다.

Java
// 기본 선언
자료형[] 배열이름;

// 배열 선언 후 생성
자료형[] 배열이름;
배열이름 = new 자료형[크기];

// 배열 선언과 동시에 생성
자료형[] 배열이름 = new 자료형[크기];

// 배열 리터럴을 사용한 초기화
자료형[] 배열이름 = {값1, 값2, 값3, ...};

// 배열 생성 후 개별적인 요소에 값 할당
자료형[] 배열이름 = new 자료형[크기];
배열이름[인덱스1] = 값1;
배열이름[인덱스2] = 값2;
// ...

// 다차원 배열 선언
자료형[][] 배열이름 = new 자료형[행의개수][열의개수];
Java

배열 생성 예제

배열 선언 후 생성

배열을 선언한 후 new 키워드를 사용하여 배열을 생성합니다.

Java
// 정수형 배열 선언 후 생성
int[] numbers;
numbers = new int[5]; // 5개의 정수를 저장할 수 있는 배열 생성
Java

배열 선언과 동시에 생성

배열 선언과 동시에 new 키워드를 사용하여 배열을 생성합니다. 가장 간결하고 일반적인 방법 중 하나입니다.

Java
// 정수형 배열 선언과 동시에 생성
int[] numbers = new int[5]; // 5개의 정수를 저장할 수 있는 배열 생성
Java

배열 리터럴을 사용한 초기화

배열을 선언하면서 동시에 초기값을 지정하여 생성합니다. 요소의 개수에 따라 배열의 크기가 자동으로 결정됩니다.

Java
// 정수형 배열 선언과 동시에 초기화
int[] numbers = {1, 2, 3, 4, 5}; // 배열 리터럴을 사용한 초기화
Java

배열 생성 후 개별적인 요소에 값 할당

배열을 생성하고, 각 요소에 개별적으로 값을 할당하는 방법입니다.

Java
// 정수형 배열 선언 및 생성
int[] numbers = new int[5];

// 배열 원소에 값을 할당하여 초기화
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
numbers[3] = 40;
numbers[4] = 50;
Java

다차원 배열 선언

2차원 배열을 선언하면서 동시에 크기를 지정하여 생성합니다. 이러한 방식으로 다차원 배열을 생성할 수 있습니다.

Java
// 2차원 배열 선언과 동시에 생성
int[][] matrix = new int[3][3]; // 3x3 행렬 생성
Java

배열 접근 방법

배열을 접근하는 방법은 배열의 인덱스를 사용하여 각 요소에 접근하는 것입니다. 자바에서 배열은 0부터 시작하는 인덱스를 갖습니다. 아래는 배열을 접근하는 다양한 방법입니다:

인덱스를 이용한 직접 접근

배열의 특정 위치에 있는 요소에 접근하는 가장 기본적인 방법으로, 인덱스를 사용하여 해당 위치의 요소에 직접 접근합니다.

Java
int[] numbers = {10, 20, 30, 40, 50};
int 첫번째요소 = numbers[0]; // 10
int 세번째요소 = numbers[2]; // 30
Java

반복문을 활용한 순회

배열의 모든 요소에 접근하기 위해 반복문을 사용할 수 있습니다. 주로 for나 foreach를 사용하여 배열을 순회하며 각 요소에 접근합니다.

Java
int[] numbers = {10, 20, 30, 40, 50};

// for문을 사용한 순회
for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}

// foreach문을 사용한 순회
for (int number : numbers) {
    System.out.println(number);
}
Java

배열 길이 활용

배열의 length 속성을 활용하여 배열의 길이를 알 수 있습니다. 이를 활용하여 모든 요소에 접근할 수 있습니다.

Java
int[] numbers = {10, 20, 30, 40, 50};

for (int i = 0; i < numbers.length; i++) {
    System.out.println(numbers[i]);
}
Java

배열을 접근하는 방법은 간단하지만 주의할 점은 배열의 인덱스는 0부터 시작한다는 점입니다. 따라서 첫 번째 요소는 array[0]이 됩니다.

배열 활용 예제

Java
public class 성적관리프로그램 {
    public static void main(String[] args) {
        // 5명의 학생 성적을 저장하는 배열 생성
        int[] 성적 = new int[5];

        // 각 학생의 성적을 배열에 입력
        성적[0] = 90;
        성적[1] = 85;
        성적[2] = 88;
        성적[3] = 92;
        성적[4] = 78;

        // 배열을 이용한 성적 평균 계산
        double 평균 = 0;
        for (int i = 0; i < 성적.length; i++) {
            평균 += 성적[i];
        }
        평균 /= 성적.length;

        // 성적 출력
        System.out.println("학생 성적:");
        for (int i = 0; i < 성적.length; i++) {
            System.out.println("학생 " + (i + 1) + ": " + 성적[i] + "점");
        }

        // 평균 출력
        System.out.println("전체 평균 성적: " + 평균 + "점");
    }
}
Java
  1. 배열 생성:
    • int[] 성적 = new int[5];는 5명의 학생 성적을 저장할 배열을 생성합니다.
  2. 성적 입력:
    • 성적[0] = 90;, 성적[1] = 85; 등을 통해 각 학생의 성적을 배열에 입력합니다.
  3. 평균 계산:
    • for 루프를 사용하여 배열의 모든 요소를 더하고, 나누어 평균을 계산합니다.
  4. 성적 및 평균 출력:
    • for 루프를 사용하여 각 학생의 성적을 출력하고, 마지막에는 전체 평균 성적을 출력합니다.

결론

자바의 배열은 동일한 자료형의 여러 요소를 하나의 변수에 저장하는 자료구조로, 프로그램에서 데이터를 효율적으로 관리하고 처리하는 데에 활용됩니다. 배열은 정적으로 선언되며 크기는 한 번 생성된 후 변경할 수 없습니다. 각 요소는 인덱스를 통해 접근 되며, 연속된 메모리 위치에 저장되어 있어 효율적인 데이터 접근이 가능합니다.

suover

Recent Posts

Java 자바 중첩 클래스(Nested Class)란?

중첩클래스란? 자바에서 중첩 클래스(Nested Class)는 자바 프로그래밍의 중요한 개념 중 하나로, 클래스 안에 다른 클래스를…

2개월 ago

Java 자바 Enum 열거형 사용법

Enum이란? Enum은 "enumeration"의 줄임말로, 특정 값들의 집합을 정의할 수 있는 특별한 클래스입니다. 예를 들어, 요일,…

2개월 ago

Java 자바 래퍼 클래스(Wrapper Class)란? 래퍼 클래스의 필요성

래퍼 클래스(Wrapper Class)란? 자바에서 래퍼 클래스는 기본 데이터 타입(Primitive Data Type)을 객체(Object)로 감싸는 클래스입니다. 자바의…

2개월 ago

Java 자바 StringBuilder 개념 및 특징 주요 메소드

서론 Java에서 문자열을 다룰 때, 문자열의 변경이 빈번하게 발생하는 경우라면 StringBuilder 클래스를 사용하는 것이 매우…

2개월 ago

웹 개발 FitOn 팀 프로젝트 회고

서론 현대인들은 점점 더 운동과 건강에 대한 관심을 가지고 있으며, 이를 체계적으로 관리하고 공유할 수…

3개월 ago

Java 자바 String 클래스 특징 및 메소드

String 클래스란? 자바에서 String 클래스는 가장 널리 사용되는 클래스 중 하나입니다. 문자열 시퀀스를 나타내며, 문자열을…

3개월 ago