자바 컬렉션
자바 컬렉션은 데이터를 그룹화하고 조작하는 데 사용되는 자바의 핵심 라이브러리 중 하나입니다. 이것은 데이터를 저장하고 조작하기 위한 다양한 클래스와 인터페이스를 제공합니다. 다양한 자료구조와 알고리즘을 지원하여 데이터를 효율적으로 다룰 수 있게 해줍니다.
자바 컬렉션의 주요 특징
1. 동적 크기 조정
자바 컬렉션은 크기가 동적으로 조정됩니다. 이것은 데이터가 추가 또는 제거될 때 자동으로 크기가 조절된다는 것을 의미합니다.
2. 강력한 타입 안전성
컴파일 시 타입 체크를 통해 런타임 오류를 방지하여 안전한 프로그래밍을 지원합니다.
3. 다양한 컬렉션 유형
자바는 다양한 종류의 컬렉션을 제공합니다. 가장 일반적인 것들로는 List, Set, Map 등이 있으며, 각각의 특징과 사용 사례가 있습니다.
주요 자바 컬렉션 유형
1. List
List는 순서가 있는 데이터 컬렉션으로, 중복된 요소를 허용합니다. ArrayList, LinkedList, Vector 등이 List 인터페이스를 구현한 예시입니다. 주로 순서가 중요한 데이터를 저장할 때 사용됩니다.
List 예제: ArrayList 사용
import java.util.ArrayList;
import java.util.List;
public class ListExample {
public static void main(String[] args) {
List<String> names = new ArrayList<>();
// 요소 추가
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// 요소 순회
for (String name : names) {
System.out.println(name);
}
// 특정 요소 접근
String firstPerson = names.get(0);
System.out.println("First person: " + firstPerson);
// 요소 삭제
names.remove("Bob");
System.out.println("After removing Bob: " + names);
}
}
2. Set
Set은 중복된 요소를 허용하지 않는 데이터 컬렉션입니다. HashSet, TreeSet, LinkedHashSet 등이 Set 인터페이스를 구현한 예시입니다. 주로 고유한 값을 저장하거나 중복을 방지해야 할 때 사용됩니다.
Set 예제: HashSet 사용
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<Integer> numbers = new HashSet<>();
// 중복 요소 추가
numbers.add(5);
numbers.add(3);
numbers.add(7);
numbers.add(5); // 중복 요소는 무시됨
// 요소 순회
for (int number : numbers) {
System.out.println(number);
}
}
}
3. Map
Map은 키-값 쌍으로 데이터를 저장하는 컬렉션입니다. 중복된 키를 허용하지 않으며, 각 키에 대응하는 값에 빠르게 접근할 수 있습니다. HashMap, TreeMap, LinkedHashMap 등이 Map 인터페이스를 구현한 예시입니다.
Map 예제: HashMap 사용
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> ageMap = new HashMap<>();
// 키-값 쌍 추가
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);
ageMap.put("Charlie", 22);
// 특정 키에 대한 값 접근
int bobAge = ageMap.get("Bob");
System.out.println("Bob's age: " + bobAge);
// 키-값 쌍 삭제
ageMap.remove("Charlie");
// 모든 키 순회
for (String name : ageMap.keySet()) {
int age = ageMap.get(name);
System.out.println(name + "'s age: " + age);
}
}
}
4. Queue
Queue는 데이터를 대기열로 관리하는데 사용됩니다. 데이터를 먼저 들어온 순서대로 처리하거나 특정 우선순위에 따라 처리하는데 적합합니다.
Queue 예제: LinkedList 사용
import java.util.LinkedList;
import java.util.Queue;
public class QueueExample {
public static void main(String[] args) {
Queue<String> queue = new LinkedList<>();
// 요소 추가
queue.add("Task 1");
queue.add("Task 2");
queue.add("Task 3");
// 요소 추출 및 처리
while (!queue.isEmpty()) {
String task = queue.poll(); // 큐에서 요소 추출
System.out.println("Processing: " + task);
}
}
}
자바 컬렉션의 활용
자바 컬렉션은 다양한 상황에서 사용됩니다. 몇 가지 예시는 다음과 같습니다:
- 데이터 저장 및 관리: 컬렉션을 사용하여 데이터를 저장하고 효율적으로 관리합니다.
- 검색 및 정렬: 컬렉션을 사용하여 데이터를 검색하고 정렬하는데 도움이 됩니다.
- 반복 및 순회: 반복문을 사용하여 컬렉션의 요소를 순회하고 처리할 수 있습니다.
- 데이터 구조화: 컬렉션을 사용하여 데이터를 구조화하고 관련된 작업을 수행합니다.