반응형
컬렉션(Collection): 개념과 활용
컬렉션(Collection)은 데이터 그룹을 저장하고 관리하는 데 사용되는 자바 프레임워크입니다. 자바 컬렉션은 데이터 구조를 표준화하여 효율적인 데이터 처리와 관리를 가능하게 합니다. 이 글에서는 컬렉션의 개념, 종류, 자바에서 사용하는 방법, 그리고 다양한 활용 예시를 소개합니다.
컬렉션(Collection)이란?
**컬렉션(Collection)**은 객체 그룹을 저장하고 조작하기 위한 컨테이너입니다. 다양한 데이터 구조를 지원하며, 자바에서 데이터 그룹을 관리하기 위한 표준화된 API를 제공합니다.
컬렉션의 특징:
- 유연성: 다양한 데이터 구조를 지원.
- 표준화: 공통된 인터페이스를 통해 일관된 작업 제공.
- 다양한 구현체: 용도에 맞는 데이터 구조 선택 가능.
- 제네릭: 타입 안정성을 보장.
컬렉션의 종류
컬렉션은 크게 인터페이스와 구현체로 나뉩니다. 주요 인터페이스와 그 하위 구현체는 다음과 같습니다:
- List:
- 순서가 있는 데이터 그룹.
- 중복 허용.
- 구현체:
ArrayList
,LinkedList
,Vector
.
- Set:
- 중복을 허용하지 않는 데이터 그룹.
- 순서 보장 안 함.
- 구현체:
HashSet
,LinkedHashSet
,TreeSet
.
- Queue:
- FIFO(First-In-First-Out) 방식으로 처리.
- 구현체:
PriorityQueue
,LinkedList
(Queue로 사용).
- Map:
- 키-값 쌍으로 데이터를 저장.
- 키는 중복 불가, 값은 중복 허용.
- 구현체:
HashMap
,LinkedHashMap
,TreeMap
.
자바에서 컬렉션 다루기
예제 1: List 사용하기
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");
names.add("Alice"); // 중복 허용
for (String name : names) {
System.out.println(name);
}
}
}
출력 결과:
Alice
Bob
Charlie
Alice
예제 2: Set 사용하기
import java.util.HashSet;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> names = new HashSet<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
names.add("Alice"); // 중복 제거됨
for (String name : names) {
System.out.println(name);
}
}
}
출력 결과 (순서 불확정):
Alice
Bob
Charlie
예제 3: Map 사용하기
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<Integer, String> userMap = new HashMap<>();
userMap.put(1, "Alice");
userMap.put(2, "Bob");
userMap.put(3, "Charlie");
for (Map.Entry<Integer, String> entry : userMap.entrySet()) {
System.out.println("ID: " + entry.getKey() + ", Name: " + entry.getValue());
}
}
}
출력 결과:
ID: 1, Name: Alice
ID: 2, Name: Bob
ID: 3, Name: Charlie
컬렉션의 주요 메서드
- List:
add(E e)
: 요소 추가.get(int index)
: 특정 위치의 요소 가져오기.remove(int index)
: 특정 위치의 요소 제거.
- Set:
add(E e)
: 요소 추가 (중복인 경우 추가되지 않음).contains(Object o)
: 요소 포함 여부 확인.
- Map:
put(K key, V value)
: 키-값 추가.get(Object key)
: 특정 키에 해당하는 값 반환.remove(Object key)
: 특정 키 삭제.
다양한 활용 예시
- 학생 성적 관리:
- List를 사용해 학생 명단 관리.
- Map을 사용해 학생별 점수 저장.
- 중복 제거:
- Set을 사용해 데이터 중복 제거.
- 우선순위 처리:
- PriorityQueue를 사용해 작업을 우선순위에 따라 처리.
- 정렬된 데이터 관리:
- TreeSet과 TreeMap을 사용해 정렬된 데이터 저장.
마치며
자바 컬렉션 프레임워크는 데이터 구조를 효과적으로 관리하고 처리할 수 있는 강력한 도구입니다. 컬렉션의 다양한 구현체와 메서드를 익히고 적절히 활용하여 효율적이고 유지보수 가능한 코드를 작성해 보세요!
반응형
'개발 부트캠프 > 백엔드' 카테고리의 다른 글
[Java] JDBC (Java Database Connectivity) (0) | 2025.01.07 |
---|---|
[Java] 쓰레드(Thread) (0) | 2025.01.06 |
[Java] 의존성 역전 원칙(DIP) (0) | 2025.01.04 |
[Java] 예외 처리 (Exception Handling) (0) | 2025.01.04 |
[Java] 인터페이스(Interface) & 의존성 주입 (0) | 2025.01.04 |