자바 컬렉션 프레임워크(JCF)는 데이터를 효율적으로 관리할 수 있도록 다양한 자료구조를 제공한다.
이번 글에서는 JCF의 주요 인터페이스인 List, Set, Map을 중심으로,
대표적인 구현체(ArrayList, HashSet, HashMap)의 특징과 주요 메서드를 살펴보자.
add(E e): 리스트에 요소를 추가한다.get(int index): 특정 인덱스의 요소를 가져온다.remove(int index) / remove(Object o): 인덱스 또는 객체를 기준으로 요소를 제거한다.size(): 리스트 길이를 반환한다.clear(): 모든 요소를 제거한다.import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args) {
List<String> fruits = new ArrayList<>();
// 요소 추가
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 인덱스로 접근
System.out.println("첫 번째 과일: " + fruits.get(0)); // Apple
// 요소 삭제
fruits.remove("Banana");
// 리스트 크기 확인
System.out.println("리스트 크기: " + fruits.size()); // 2
}
}
add(E e): 요소를 추가한다(이미 존재하면 추가되지 않는다).remove(Object o): 지정된 객체를 제거한다.contains(Object o): 특정 요소가 존재하는지 확인한다.size(): 집합에 저장된 요소 수를 반환한다.clear(): 모든 요소를 제거한다.import java.util.HashSet;
import java.util.Set;
public class HashSetExample {
public static void main(String[] args) {
Set<Integer> numbers = new HashSet<>();
// 요소 추가
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(2); // 중복 추가 (무시됨)
// 포함 여부 확인
System.out.println("2 포함 여부: " + numbers.contains(2)); // true
// 요소 제거
numbers.remove(1);
// 전체 출력
System.out.println("저장된 값들: " + numbers); // 순서 보장 X
}
}
key)와 값(value)의 쌍으로 데이터를 저장한다.put()을 호출하면 값을 덮어씀).Collection을 상속하지 않으나, JCF의 일부로 함께 취급한다.hashCode()와 equals()를 사용하여 동일성 판단을 수행한다.put(K key, V value): 키-값 쌍을 추가하거나, 해당 키가 이미 존재하면 값을 덮어쓴다.get(Object key): 키에 해당하는 값을 반환한다(없으면 null).remove(Object key): 해당 키의 엔트리를 제거한다.(키와 밸류 쌍을 엔트리라고 함)containsKey(Object key): 특정 키 존재 여부를 반환한다.keySet(): 저장된 키 전체를 Set으로 반환한다.import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
Map<String, Integer> scores = new HashMap<>();
// 데이터 추가
scores.put("Alice", 85);
scores.put("Bob", 90);
scores.put("Charlie", 88);
// 값 조회
System.out.println("Alice의 점수: " + scores.get("Alice")); // 85
// 키 존재 여부 확인
System.out.println("Bob이 존재하는가? " + scores.containsKey("Bob")); // true
// 요소 삭제
scores.remove("Charlie");
// 전체 출력
System.out.println("전체 데이터: " + scores);
}
}
List → 순서 유지 + 중복 허용 (ArrayList)
Set → 중복 제거, 빠른 검색 (HashSet)
Map → Key-Value 저장, 빠른 검색 (HashMap)