learn/data structure

배열 (Array)

사겅이 2023. 9. 24. 04:17

출처 : https://doctorson0309.tistory.com/387

 

동일한 데이터 타입의 여러 데이터를 하나의 변수에 저장하며 각 요소는 인덱스를 통해 접근

 

  • 장점
    고정된 크기: 배열은 선언할 때 크기를 정해야 하므로 메모리 관리가 용이하며 크기가 변경되지 않기 때문에 오버헤드가 적음
    빠른 접근: 메모리 공간이 연속적이고 물리주소와 논리주소가 동일하므로 인덱스를 사용하여 요소에 직접 접근하기 때문에 빠름 (인덱스를 사용할 수 있어 시간복잡도(Time Complexity)가 O(1) 임)

  • 단점
    고정된 크기: 크기를 변경하기 어렵고 요소를 추가하거나 제거하려면 새로운 배열을 생성하고 기존 데이터를 복사해야 하므로 새로운 배열을 이동시키는데에는 O(n)의 시간복잡도가 소요됨
    메모리 낭비: 배열은 크기를 미리 정해야 하므로 필요한 메모리보다 많은 메모리를 할당할 수 있음
    인덱스 오류: 잘못된 인덱스를 사용하면 런타임 에러가 발생할 수 있음
public class ArrayTest {
    public static void main(String[] args) {
        int[] numbers;
        // 배열 초기화 (크기 지정)
        numbers = new int[5];
        numbers[0] = 10;
        numbers[1] = 20;
        numbers[2] = 30;
        numbers[3] = 40;
        numbers[4] = 50;
        int value = numbers[2];
        System.out.println("numbers[2]의 값: " + value);
        // 배열 초기화 (크기 지정)
        char[] characters = new char[]{'1','2','3','4','5'};
        char charValue = characters[2];
        System.out.println("characters[2]의 값: " + charValue );
    }
}

 

'learn > data structure' 카테고리의 다른 글

데크 (Deque)  (0) 2023.09.24
큐 (Queue)  (0) 2023.09.24
스택 (Stack)  (0) 2023.09.24
연결 리스트 (Linked List)  (1) 2023.09.24
자료구조 (Data Structure)  (0) 2023.09.23