Java

[자바 프로그래밍 입문] #2

yeon.___.jin 2025. 4. 30. 14:41
반응형

배열이란?

  • 같은 자료형의 데이터를 여러 개 연속적으로 저장할 수 있는 자료구조이다.
  • 각각의 데이터는 인덱스(번호) 를 통해 접근할 수 있다. 
  • 배열의 인덱스는 항상 0부터 시작한다. 

배열은 변수와 마찬가지로 자료형을 함께 선언한다.

자료형[] 배열이름 = new 자료형[개수];
자료형 배열이름[] = new 자료형[개수];

 

배열 요소

  • 배열을 이루는 각각의 데이터를 배열 요소라고 한다.
  • 배열 요소는 모두 같은 자료형이어야 한다.
int[] studentIDs = new int[10]; // int형 요소가 10개인 배열 선언

 

배열 초기화

  • 자바에서 배열을 선언하면 그와 동시에 각 요소의 값이 초기화된다.
    • 정수형(int) → 0
    • 실수형(double, float) → 0.0
    • 객체형(String, Array, Object 등) → null

 

아래와 같이 배열을 선언하면서 동시에 특정 값으로 초기화할 수도 있다.

배열이 초기화 요소의 개수만큼 생성되므로 []안의 개수 생략할수도 있다.

int[] studentIDs = new int[] {101,102,103};
int[] studentIDs = {101,102,103};

 

 

배열을 먼저 선언하고, 나중에 값을 초기화하는 경우에는 new int[]를 생략 할 수 없다. 

int[] studentIDs;
studentIDs = new int[] {101, 102, 103};

 

배열 사용하기

선언한 배열의 각 요소에 값을 넣을 때나 배열에 있는 값을 가져올 때는 []를 사용한다.

배열의 첫 번째 요소에 값 10을 저장한다면 다음처럼 코드를 작성한다.

studentIDs[0] = 10;
num[3] = 25; // num배열의 4번째 요소에 값 25를 저장
age = num[3]; // age 변수에 num 배열의 4번째 요소의 값을 저장

 

배열의 길이(처음 선언한 길이)가 n일 경우, 배열의 순서는 0부터 n-1번 까지이다. 

 

public static void main(String[] args){
    int[] num = new int[] {1,2,3,4,5,6,7,8,9,10};

    for(int i=0; i<num.length; i++){ 
        System.out.println(num[i]);
        // 배열의 첫 번째 요소 num[0]부터 열 번째 요소 num[9]까지 10개 요소 값 출력
    }
}

 

배열의 길이

  • 자바의 배열은 배열 길이를 나타내는 length 속성을 가진다.
  • 배열의 길이는 처음에 선언한 배열의 전체 요소 개수를 의미한다.
  • 전체 배열의 길이를 알고싶은 배열 이름 뒤에 .length 속성을 쓰면 배열의 길이를 반환한다.
public static void main(String[] args){
	double[] data = new double[5];
    
    double[0] = 10.0; // 첫 번째 요소의 값 10.0 대입
    double[1] = 20.0; // 두 번째 요소의 값 20.0 대입
    double[2] = 30.0; // 세 번째 요소의 값 30.0 대입
    
    for(int i=0; i<data.length; i++){ // 배열의 전체 길이만큼 반복
    	System.out.println(data[i]);
    }
}

 

다차원 배열

이차원 이상으로 구현한 배열

int[][] arr = new int [2][3];

public static void main(String[] args){
    int[][] arr = {{1,2,3}, {4,5,6}};

    for(int i=0; i< arr.length; i++){ 			// arr.length 행 길이
        for(int k=0; k<arr[i].length; k++){		// arr[i].length 열 길이
            System.out.print(arr[i][k]);
        }
        System.out.println();
    }
}

 

배열은 항상 길이를 정하고 시작한다.

그러나 배열의 길이를 변경해야하는 경우도 반드시 필요하다. 

따라서 자바는 객체 배열을 좀 더 쉽게 사용할 수 있도록 객체 배열 클래스 ArrayList를 제공한다. 

ArrayList는 객체 배열을 관리할 수 잇는 멤버 변수와 메서드를 제공해서 편하게 사용할 수 있다.

 

배열의 한계

  • 배열은 항상 길이(크기)를 미리 정하고 시작해야 한다.
  • 한 번 생성된 배열은 길이를 변경할 수 없다.
 

배열의 길이 변경 필요성

  • 프로그램을 작성하다 보면 데이터의 수가 유동적으로 변하는 경우가 있는데, 기존의 배열로는 대응이 어렵다.
  • 길이를 자유롭게 조절할 수 있는 컬렉션이 필요하다.

ArrayList

  • 자바는 배열의 한계를 보완하기 위해 ArrayList 클래스를 제공한다.
  • ArrayList를 사용하면 배열처럼 고정된 크기에 구애받지 않고 데이터를 유연하게 추가, 삭제할 수 있다.
메서드 설명
boolean add(E e) 요소 하나를 배열에 추가한다. E는 배열의 자료형을 의미한다.
int size() 배열에 추가된 요소 전체 개수를 반환한다.
E get(int index) 배열의 index 위치에 있는 요소 값을 반환한다.
E remove(int index) 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다.
boolean isEmpty() 배열이 비어있는지 확인한다. 

 

728x90
반응형

'Java' 카테고리의 다른 글

[자바 프로그래밍 입문] #1  (0) 2025.04.28
[JAVA] 코테준비 문자열 #1  (0) 2024.11.17