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 자바 Set – HashSet, TreeSet, LinkedHashSet 정리

소개 자바에서 Set은 중복을 허용하지 않는 데이터 집합을 의미합니다. List와 달리 동일한 요소를 여러 번…

1개월 ago

Java 자바 Hash 해시 제대로 이해하기

해시(Hash)란 무엇인가? 해시(Hash)는 자바 프로그래밍에서 빠르고 효율적인 데이터 저장 및 검색을 위한 핵심적인 개념입니다. 이…

2개월 ago

Java 자바 리스트 (List) 정리

List란 무엇인가? List는 자바 컬렉션 프레임워크의 핵심 인터페이스 중 하나로, 순서가 있는 데이터를 다루는 데…

2개월 ago

Java 자바 LinkedList 동작 원리와 사용법

LinkedList란 무엇인가? LinkedList는 자바에서 유용하게 사용되는 자료구조 중 하나로, 연결 리스트 방식을 이용하여 데이터를 관리하는…

2개월 ago

Java 자바 ArrayList 동작 원리와 사용법

ArrayList란 무엇인가? ArrayList는 자바에서 가장 널리 사용되는 컬렉션 중 하나로, 가변 크기의 배열을 구현한 클래스입니다.…

2개월 ago

Java 자바 제네릭(Generic) 개념과 문법 알아보기

제네릭(Generic)이란? 자바 제네릭은 코드의 재사용성을 높이고 타입 안전성을 보장하는 중요한 개념입니다. 이 블로그 글에서는 자바…

2개월 ago