Java Collection Framework는 List, Set, Map 등의 인터페이스와 이를 구현하는 클래스들로 구성되어 있으며, 자료의 저장, 검색, 삭제 등을 손쉽게 할 수 있게 돕는 프레임워크입니다. 이 글에서는 Java Collection Framework에 대한 개요와 인터페이스와 구현 클래스의 사용법을 예시와 함께 살펴보겠습니다.
1. Java Collection Framework 개요
Java Collection Framework는 데이터 구조를 쉽게 구현할 수 있는 표준 인터페이스 및 클래스를 제공합니다. 이를 사용하면 프로그래머는 복잡한 데이터 구조를 직접 구현하는 대신, 제공된 인터페이스와 구현 클래스를 사용하여 원하는 기능을 적절히 활용할 수 있습니다.
2. List 인터페이스와 구현 클래스
List 인터페이스는 순서가 유지되며 중복 요소를 허용하는 컬렉션입니다. 주로 ArrayList와 LinkedList 두 가지 구현 클래스가 사용됩니다.
import java.util.ArrayList;
import java.util.List;
public class App {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
// 항목 추가
list.add("Apple");
list.add("Banana");
list.add("Orange");
// 항목 삭제
list.remove(1); // 인덱스 1 항목 삭제 ("Banana" 삭제)
// 항목 수정
list.set(0, "Grape");
// 항목 검색 및 출력
for (String item : list) {
System.out.println(item);
}
}
}
3. Set 인터페이스와 구현 클래스
Set 인터페이스는 순서를 유지하지 않으며 중복 요소를 허용하지 않는 컬렉션입니다. 주로 HashSet, LinkedHashSet, TreeSet 등의 구현 클래스가 사용됩니다.
import java.util.HashSet;
import java.util.Set;
public class App {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
// 항목 추가
set.add("Apple");
set.add("Banana");
set.add("Orange");
set.add("Apple"); // 중복 요소이므로 추가되지 않음
// 항목 삭제
set.remove("Banana");
// 항목 검색 및 출력
for (String item : set) {
System.out.println(item);
}
}
}
4. Map 인터페이스와 구현 클래스
Map 인터페이스는 키-값 쌍으로 저장되는 컬렉션으로, 키는 고유해야 하며 순서가 보장되지 않습니다. 주로 HashMap, LinkedHashMap, TreeMap 등의 구현 클래스가 사용됩니다.
import java.util.HashMap;
import java.util.Map;
public class App {
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
// 항목 추가
map.put("Apple", "Green");
map.put("Banana", "Yellow");
map.put("Orange", "Orange");
// 항목 삭제
map.remove("Banana");
// 항목 수정
map.put("Apple", "Red");
// 항목 검색 및 출력
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
}
}
5. List, Set, Map의 주요특징, 차이점
List, Set, Map 인터페이스는 Java Collection Framework의 세 가지 주요 인터페이스입니다. 각각의 특징과 차이점은 다음과 같습니다.
5.1. List
- 순서가 있는 컬렉션
- 중복 요소 허용 가능
- 인덱스(index)를 사용하여 요소에 접근 가능
- 주요 구현 클래스: ArrayList, LinkedList, Vector
5.2. Set
- 순서가 없는 컬렉션
- 중복 요소 불가능
- 요소에 대한 체크 기능 제공 (contains)
- 주요 구현 클래스: HashSet, LinkedHashSet, TreeSet
5.3. Map
- 순서가 없는 Key-Value 쌍의 컬렉션
- Key는 중복 불가능, Value는 중복 허용 가능
- Key를 사용하여 Value에 접근 가능
- 주요 구현 클래스: HashMap, LinkedHashMap, TreeMap
즉, List는 순서가 있고 중복 가능하며 인덱스로 요소에 접근할 수 있고, Set은 순서 없이 중복이 불가능하며 요소에 대한 체크 기능을 제공하고, Map은 순서 없는 Key-Value 쌍의 컬렉션으로 Key를 사용하여 Value에 접근이 가능합니다. 이러한 차이점을 고려하여 컬렉션을 선택하면, 데이터 구조를 효율적으로 사용할 수 있습니다.
Java Collection Framework를 이해하고 활용하면 데이터를 효율적으로 다루고 신속하게 처리할 수 있습니다. List, Set, Map 인터페이스와 이를 구현하는 클래스들을 알아보며, 해당 예시를 토대로 다양한 프로그램에 응용해보기를 권장합니다.
'IT 개발 > JAVA' 카테고리의 다른 글
[Java기초] Java 개발환경 구축하기 (0) | 2023.07.24 |
---|---|
Java 멀티스레딩 개념 및 활용: 스레드 생성, 동기화 (0) | 2023.07.21 |
[Java 기초] Java 상속, 추상화, 인터페이스: 이해하고 사용하기 (0) | 2023.07.21 |
[Java기초] Java 클래스와 객체 지향 프로그래밍 (0) | 2023.07.21 |
[Java기초] Java 배열 및 다차원 배열 사용법 (0) | 2023.07.20 |