학습
Java 컬렉션 프레임워크
Java 컬렉션 프레임워크 — 중급
컬렉션 프레임워크
1. 도입 (왜 배워야 하는가)
Java의 컬렉션 프레임워크는 데이터를 효율적으로 저장하고 처리하기 위해 설계된 구조입니다. 실무에서 다양한 데이터 구조를 적절히 활용하는 것은 매우 중요합니다. 예를 들어, 쇼핑몰에서 장바구니 기능을 구현할 때, 어떤 방식으로 제품을 저장하고 관리할 것인지에 따라 성능과 유지보수성이 크게 달라질 수 있습니다.
컬렉션 프레임워크를 모르면 데이터를 효과적으로 관리할 수 없고, 비효율적인 코드로 인해 성능 저하나 메모리 낭비가 발생할 수 있습니다. 또한, 반복적인 작업을 수동으로 처리하게 되어 생산성이 떨어질 수 있습니다.
2. 핵심 개념 설명
컬렉션 프레임워크는 크게 다음과 같은 주요 개념으로 나눌 수 있습니다:
- List: 순서가 있는 데이터의 집합. 예를 들어, 영화 목록을 저장할 때 사용합니다.
- Set: 중복을 허용하지 않는 데이터의 집합. 친구 목록을 만들 때 유용합니다.
- Map: 키-값 쌍으로 이루어진 데이터의 집합. 사용자 정보를 관리할 때 사용됩니다.
| 용어 | 설명 | 예시 |
|---|---|---|
| List | 순서가 있는 데이터 집합 | 영화 목록 |
| Set | 중복을 허용하지 않는 데이터 집합 | 친구 목록 |
| Map | 키와 값을 쌍으로 저장하는 데이터 집합 | 사용자 ID와 비밀번호 |
3. 기본 코드 예제
아래는 List를 사용하는 간단한 코드 예제입니다.
import java.util.ArrayList;
import java.util.List;
public class BasicListExample {
public static void main(String[] args) {
// List 생성
List<String> movies = new ArrayList<>();
// 영화 추가
movies.add("Inception");
movies.add("Interstellar");
movies.add("The Dark Knight");
// 영화 출력
for (String movie : movies) {
System.out.println(movie);
}
}
}
실행 결과:
Inception
Interstellar
The Dark Knight
List<String> movies = new ArrayList<>();: 문자열을 저장할 수 있는 리스트를 생성합니다.movies.add("Inception");: 리스트에 "Inception"이라는 영화를 추가합니다.for (String movie : movies) { ... }: 리스트의 각 영화 제목을 순회하며 출력합니다.4. 실전 활용 예제
예제 1: 쇼핑몰 장바구니 구현
쇼핑몰에서 장바구니에 상품을 추가하고, 전체 상품을 보여주는 예제입니다.
import java.util.ArrayList;
import java.util.List;
public class ShoppingCart {
private List<String> cart;
public ShoppingCart() {
cart = new ArrayList<>();
}
public void addProduct(String product) {
cart.add(product);
}
public void showCart() {
System.out.println("장바구니 상품 목록:");
for (String product : cart) {
System.out.println(product);
}
}
public static void main(String[] args) {
ShoppingCart myCart = new ShoppingCart();
myCart.addProduct("노트북");
myCart.addProduct("스마트폰");
myCart.showCart();
}
}
실행 결과:
장바구니 상품 목록:
노트북
스마트폰
예제 2: 친구 목록 관리
Set을 사용하여 친구 목록을 관리하는 예제입니다.
import java.util.HashSet;
import java.util.Set;
public class FriendList {
private Set<String> friends;
public FriendList() {
friends = new HashSet<>();
}
public void addFriend(String friend) {
friends.add(friend);
}
public void showFriends() {
System.out.println("친구 목록:");
for (String friend : friends) {
System.out.println(friend);
}
}
public static void main(String[] args) {
FriendList myFriends = new FriendList();
myFriends.addFriend("Alice");
myFriends.addFriend("Bob");
myFriends.addFriend("Alice"); // 중복 추가
myFriends.showFriends();
}
}
실행 결과:
친구 목록:
Alice
Bob
5. 흔한 실수와 주의사항
실수 1: 중복 데이터 처리
Set을 사용할 때 중복된 데이터를 추가하려고 하면 무시됩니다.
Set<String> set = new HashSet<>();
set.add("A");
set.add("A"); // 중복 추가
// 결과적으로 1개의 요소만 존재
실수 2: 타입 안전성
컬렉션을 사용할 때, 타입을 잘못 지정하면 컴파일 오류가 발생할 수 있습니다.
List<Integer> list = new ArrayList<>();
list.add("String"); // 컴파일 오류 발생