SMALL
📚 9강: 컬렉션 프레임워크 (Collection Framework)
🚀 1. 컬렉션 프레임워크란?
- 컬렉션(Collection): 객체를 효율적으로 저장하고 관리하기 위한 자료구조의 집합입니다.
- 컬렉션 프레임워크(Collection Framework): 자바에서 제공하는 표준화된 자료구조와 알고리즘의 모음입니다.
- 주요 목적:
- 데이터 저장
- 데이터 검색
- 데이터 수정 및 삭제
🚀 2. 컬렉션 프레임워크의 구조
📌 2.1 주요 인터페이스
인터페이스 | 설명 | 주요 구현체 |
List | 순서가 있는 데이터 저장, 중복 허용 | ArrayList, LinkedList |
Set | 순서 없음, 중복 불가 | HashSet, TreeSet |
Map | 키-값 쌍으로 저장, 키는 중복 불가 | HashMap, TreeMap |
📌 2.2 컬렉션 계층 구조
Collection (인터페이스)
│
├── List (인터페이스)
│ ├── ArrayList (클래스)
│ ├── LinkedList (클래스)
│
├── Set (인터페이스)
│ ├── HashSet (클래스)
│ ├── TreeSet (클래스)
│
└── Map (인터페이스)
├── HashMap (클래스)
├── TreeMap (클래스)
🚀 3. List 인터페이스
- 순서가 있는 데이터의 집합
- 중복 허용
- 인덱스로 접근 가능
📌 3.1 ArrayList
- 가장 많이 사용되는 List 구현체
- 배열 기반, 검색 속도 빠름, 삽입/삭제 속도 느림
✅ ArrayList 예제
import java.util.ArrayList;
public class ListExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
// 데이터 추가
list.add("Apple");
list.add("Banana");
list.add("Cherry");
// 데이터 출력
for (String fruit : list) {
System.out.println(fruit);
}
// 특정 요소 접근
System.out.println("첫 번째 과일: " + list.get(0));
// 데이터 삭제
list.remove(1);
System.out.println("삭제 후 리스트: " + list);
}
}
📌 출력 결과:
Apple
Banana
Cherry
첫 번째 과일: Apple
삭제 후 리스트: [Apple, Cherry]
🚀 4. Set 인터페이스
- 순서가 없음
- 중복 불가
📌 4.1 HashSet
- 중복을 허용하지 않음
- 순서를 보장하지 않음
✅ HashSet 예제
import java.util.HashSet;
public class SetExample {
public static void main(String[] args) {
HashSet<String> set = new HashSet<>();
// 데이터 추가
set.add("Apple");
set.add("Banana");
set.add("Apple"); // 중복 요소 추가 (무시됨)
// 데이터 출력
for (String fruit : set) {
System.out.println(fruit);
}
}
}
📌 출력 결과:
Apple
Banana
🚀 5. Map 인터페이스
- 키(Key)와 값(Value) 쌍으로 데이터 저장
- 키는 중복 불가, 값은 중복 가능
📌 5.1 HashMap
- 빠른 데이터 검색
- 순서 보장 안됨
✅ HashMap 예제
import java.util.HashMap;
public class MapExample {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>();
// 데이터 추가
map.put("Apple", 10);
map.put("Banana", 20);
map.put("Cherry", 30);
// 특정 키의 값 가져오기
System.out.println("Apple의 값: " + map.get("Apple"));
// 전체 데이터 출력
for (String key : map.keySet()) {
System.out.println(key + ": " + map.get(key));
}
}
}
📌 출력 결과:
Apple의 값: 10
Apple: 10
Banana: 20
Cherry: 30
🚀 6. 컬렉션 반복 (Iterator)
- 컬렉션의 요소를 순차적으로 접근할 때 사용
- Iterator 인터페이스를 사용
✅ Iterator 예제
import java.util.ArrayList;
import java.util.Iterator;
public class IteratorExample {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("A");
list.add("B");
list.add("C");
Iterator<String> iterator = list.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
📌 출력 결과:
A
B
C
🚀 7. 실습 과제
✅ 1. List 실습
- ArrayList에 문자열을 추가하세요.
- 모든 요소를 출력하고, 특정 요소를 삭제한 후 다시 출력하세요.
import java.util.ArrayList;
public class ListExample {
public static void main(String[] args) {
// ArrayList 생성
ArrayList<String> fruits = new ArrayList<>();
// 요소 추가
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
// 모든 요소 출력
System.out.println("초기 리스트: " + fruits);
// 특정 요소 삭제
fruits.remove("Banana");
// 삭제 후 리스트 출력
System.out.println("삭제 후 리스트: " + fruits);
}
}
✅ 출력 결과
초기 리스트: [Apple, Banana, Cherry]
삭제 후 리스트: [Apple, Cherry]
✅ 2. Set 실습
- HashSet에 정수를 추가하세요.
- 중복된 정수를 추가해보고 결과를 확인하세요.
import java.util.HashSet;
public class SetExample {
public static void main(String[] args) {
// HashSet 생성
HashSet<Integer> numbers = new HashSet<>();
// 요소 추가
numbers.add(1);
numbers.add(2);
numbers.add(3);
numbers.add(2); // 중복된 요소 추가
// 모든 요소 출력
System.out.println("HashSet 요소: " + numbers);
}
}
✅ 출력 결과
HashSet 요소: [1, 2, 3]
📌 설명:
HashSet은 중복을 허용하지 않기 때문에 중복된 숫자 2는 추가되지 않았습니다.
✅ 3. Map 실습
- HashMap에 학생 이름과 점수를 추가하세요.
- 특정 학생의 점수를 출력하고, 모든 데이터를 반복문으로 출력하세요.
import java.util.HashMap;
public class MapExample {
public static void main(String[] args) {
// HashMap 생성
HashMap<String, Integer> studentScores = new HashMap<>();
// 학생 이름과 점수 추가
studentScores.put("Alice", 85);
studentScores.put("Bob", 90);
studentScores.put("Charlie", 75);
// 특정 학생의 점수 출력
System.out.println("Bob의 점수: " + studentScores.get("Bob"));
// 모든 데이터 출력
System.out.println("모든 학생의 점수:");
for (String key : studentScores.keySet()) {
System.out.println(key + ": " + studentScores.get(key));
}
}
}
✅ 출력 결과
Bob의 점수: 90
모든 학생의 점수:
Alice: 85
Bob: 90
Charlie: 75
🚀 4. 실습 정리
문제 유형 | 컬렉션 사용 | 핵심 포인트 |
List 실습 | ArrayList | 순서 유지, 중복 허용 |
Set 실습 | HashSet | 중복 불가, 순서 보장 안됨 |
Map 실습 | HashMap | 키-값 쌍 저장, 키 중복 불가 |
- ArrayList
- 순서가 있는 데이터를 저장하고 수정, 삭제할 수 있습니다.
- HashSet
- 중복을 허용하지 않는 데이터 집합입니다.
- HashMap
- 키-값 쌍으로 데이터를 저장하며, 키를 통해 값을 빠르게 검색할 수 있습니다.
🎯 8. 학습 목표
- List, Set, Map의 차이점을 이해한다.
- ArrayList, HashSet, HashMap을 사용할 수 있다.
- 컬렉션을 반복하고 조작할 수 있다.
- 다양한 상황에 맞는 컬렉션을 선택하여 사용할 수 있다.
✅ 다음 강의 예고: 10강 - 파일 입출력 (File I/O)
다음 강의에서는 **자바 파일 입출력(File I/O)**을 학습합니다. 😊
LIST
'자바 (JAVA)' 카테고리의 다른 글
📚 JAVA 11강: 스레드(Thread) (1) | 2025.01.03 |
---|---|
📚 JAVA 10강: 파일 입출력 (File I/O) (0) | 2025.01.03 |
📚 JAVA 8강: 예외 처리 (Exception Handling) (0) | 2025.01.03 |
📚 JAVA 7강: 객체 지향 프로그래밍 (OOP) - 추상 클래스와 인터페이스 (0) | 2025.01.03 |
📚 JAVA 6강: 객체 지향 프로그래밍 (OOP) - 상속과 오버라이딩 (0) | 2025.01.03 |