728x90
1. 기본 배열 (Array)
- 정의: 동일한 타입의 요소가 고정된 크기로 연속된 메모리 공간에 저장된 자료구조입니다.
- 특징:
- 고정 크기: 배열의 크기는 선언 시 고정되며 변경할 수 없습니다.
- 빠른 접근: 인덱스 값으로 각 요소에 O(1) 시간 복잡도로 접근 가능.
- 메모리 효율성: 연속적인 메모리 공간을 사용하여 메모리 접근이 빠릅니다.
- 용도: 크기가 변하지 않는 데이터 집합을 저장할 때 유용합니다.
int[] numbers = {1, 2, 3, 4, 5};
System.out.println("첫 번째 요소: " + numbers[0]); // 1
System.out.println("세 번째 요소: " + numbers[2]); // 3
2. 동적 배열 (Dynamic Array)
- 정의: 크기를 동적으로 조정할 수 있는 배열로, 요소 추가/삭제 시 자동으로 크기가 조정됩니다.
- 특징:
- 크기 변경 가능: 배열이 가득 차면 더 큰 메모리 공간을 할당해 확장(일반적으로 2배)합니다.
- 빠른 접근: 인덱스를 통해 O(1) 시간에 접근할 수 있습니다.
- 성능: 추가 작업 시 배열이 꽉 차면 재할당/복사로 인해 O(n)의 시간 복잡도가 발생할 수 있지만, 평균적으로 O(1) 성능을 가집니다.
- 용도: 크기가 변동될 수 있는 리스트가 필요할 때 사용합니다.
import java.util.ArrayList;
ArrayList<Integer> dynamicArray = new ArrayList<>();
dynamicArray.add(10);
dynamicArray.add(20);
dynamicArray.add(30);
System.out.println("첫 번째 요소: " + dynamicArray.get(0)); // 10
System.out.println("크기: " + dynamicArray.size()); // 3
3. 연관 배열 (Associative Array)
- 정의: 키-값 쌍으로 데이터를 저장하는 자료구조, 흔히 해시맵(HashMap)이나 딕셔너리(Dictionary)로 불립니다.
- 특징:
- 키 기반 접근: 각 값은 고유 키로 저장되며, 키를 통해 빠르게 값을 찾을 수 있습니다.
- 유연한 데이터 타입: 키와 값 모두 다양한 타입으로 지정 가능.
- 빠른 검색: 해시 함수를 사용하여 O(1)의 시간 복잡도로 값에 접근 가능.
- 용도: 키 기반으로 데이터를 관리하고 검색이 필요할 때 유용합니다.
import java.util.HashMap;
HashMap<String, String> associativeArray = new HashMap<>();
associativeArray.put("name", "John");
associativeArray.put("occupation", "Developer");
System.out.println("Name: " + associativeArray.get("name")); // John
728x90
'자료구조' 카테고리의 다른 글
[자료구조] 큐(Queue) (0) | 2024.10.12 |
---|---|
[자료구조] 스택(Stack) Java 예제 포함 (1) | 2024.10.11 |
[자료구조] Array 배열 (0) | 2024.08.16 |
[자료구조] Linked List (0) | 2024.08.15 |