15. 컬렉션
컬렉션 프레임워크란, 데이터 구조와 알고리즘을 제공하는 자바의 표준 라이브러리로서, 개발자들이 데이터를 효과적으로 저장, 관리, 조작할 수 있도록 도와주는 일련의 클래스와 인터페이스의 모음입니다.
15.1. 컬렉션 프레임워크 개요
컬렉션 프레임워크는 여러 개의 데이터를 저장하고 관리하기 위한 표준화된 클래스들의 집합입니다. 자바에서는 주로 List, Set, Map이라는 인터페이스를 기반으로 한 클래스들을 제공하고 있습니다. 컬렉션 프레임워크를 사용하면 데이터를 효율적으로 저장, 검색, 삭제, 정렬 등 다양한 연산을 수행할 수 있습니다.
15.2. List, Set, Map 인터페이스
- List: 순서가 있는 데이터를 저장하는 인터페이스로, 중복된 데이터를 허용합니다. 주요 메서드로는 add(), get(), remove(), size() 등이 있습니다.
- Set: 순서가 없으며 중복된 데이터를 허용하지 않는 인터페이스입니다. 주요 메소드로는 add(), remove(), contains(), size() 등이 있습니다.
- Map: 키와 값의 쌍으로 이루어진 데이터를 저장하는 인터페이스로, 키는 중복될 수 없지만 값은 중복될 수 있습니다. 주요 메서드로는 put(), get(), remove(), keySet(), values() 등이 있습니다.
15.3. ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap 사용
- ArrayList: 가변 크기의 배열을 구현한 List 인터페이스 구현 클래스로, 인덱스를 사용해 데이터에 빠르게 접근할 수 있습니다.
- LinkedList: 이중 연결 리스트를 구현한 List 인터페이스 구현 클래스로, 데이터 삽입 및 삭제가 빠르지만, 인덱스를 사용한 데이터 접근은 상대적으로 느립니다.
- HashSet: 해시 테이블을 사용한 Set 인터페이스 구현 클래스로, 데이터의 중복을 허용하지 않으며, 검색 속도가 빠릅니다.
- TreeSet: 이진 검색 트리를 사용한 Set 인터페이스 구현 클래스로, 데이터의 중복을 허용하지 않고 정렬된 순서로 저장됩니다.
- HashMap: 해시 테이블을 사용한 Map 인터페이스 구현 클래스로, 키-값 쌍의 데이터를 빠르게 저장 및 검색할 수 있습니다.
- TreeMap: 이진 검색 트리를 사용한 Map 인터페이스 구현 클래스로, 키-값 쌍의 데이터를 정렬된 순서로 저장하며, 범위 검색이 가능합니다.
15.4. 컬렉션 관련 유틸리티 클래스
- Collections: 컬렉션과 관련된 다양한 유틸리티 메소드를 제공하는 클래스입니다. 정렬, 검색, 동기화, 불변 컬렉션 생성 등의 기능을 제공합니다. 주요 메서드로는 sort(), binarySearch(), reverse(), synchronizedList(), unmodifiableList() 등이 있습니다.
- Arrays: 배열과 관련된 다양한 유틸리티 메소드를 제공하는 클래스입니다. 배열의 정렬, 검색, 복사, 비교 등의 기능을 제공하며, 주요 메서드로는 sort(), binarySearch(), copyOf(), equals() 등이 있습니다.
※ ArrayList 사용
import java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList<String> fruits = new ArrayList<>();
// 데이터 추가
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 데이터 접근 및 출력
for (int i = 0; i < fruits.size(); i++) {
System.out.println(fruits.get(i));
}
// 데이터 삭제
fruits.remove(1); // 인덱스 1 (Banana) 삭제
// 데이터 수정
fruits.set(0, "Grape");
// 수정된 데이터 출력
for (String fruit : fruits) {
System.out.println(fruit);
}
}
}
※ HashMap 사용
import java.util.HashMap;
public class HashMapExample {
public static void main(String[] args) {
HashMap<String, Integer> scores = new HashMap<>();
// 데이터 추가
scores.put("Alice", 90);
scores.put("Bob", 85);
scores.put("Charlie", 95);
// 데이터 접근 및 출력
System.out.println("Alice's score: " + scores.get("Alice"));
System.out.println("Bob's score: " + scores.get("Bob"));
System.out.println("Charlie's score: " + scores.get("Charlie"));
// 데이터 삭제
scores.remove("Bob");
// 데이터 수정
scores.put("Alice", 100);
// 수정된 데이터 출력
for (String key : scores.keySet()) {
System.out.println(key + "'s score: " + scores.get(key));
}
}
}
자바 컬렉션 프레임워크를 사용하면 개발자는 복잡한 데이터 구조와 알고리즘을 직접 구현할 필요 없이 다양한 데이터를 효율적으로 저장하고 처리할 수 있습니다. 이를 통해 개발 시간을 절약하고 코드의 품질과 가독성을 향상할 수 있습니다. 따라서 자바 컬렉션 프레임워크를 이해하고 활용하면 프로그래머로서 더욱 발전할 수 있습니다.
반응형
'GD's IT Lectures : 기초부터 시리즈 > 자바(JAVA) 기초부터 ~' 카테고리의 다른 글
[자바(JAVA)] 스트림 API (0) | 2023.04.28 |
---|---|
[자바(JAVA)] 함수형 프로그래밍과 람다 (0) | 2023.04.28 |
[자바(JAVA)] 제네릭 (0) | 2023.04.28 |
[자바(JAVA)] 예외 처리 (0) | 2023.04.27 |
[자바(JAVA)] 패키지와 접근 제어자 (0) | 2023.04.27 |
댓글