IT/JAVA
[JAVA] 자바 기초 복습 (Chapter.10)
j8970
2025. 3. 2. 22:13
📅 학습 기간: 2월 2주차
🎯 학습 내용: 컬렉션 프레임워크
📌 1. 컬렉션 프레임워크 (Collection Framework)
💡 데이터를 저장하고 처리하는 자료구조의 표준화된 설계
✅ 다양한 자료구조 제공, 데이터의 효율적인 관리 지원
🔹 1.1 컬렉션 프레임워크 주요 인터페이스
Collection | 자바 컬렉션 프레임워크의 최상위 인터페이스 (List, Set 등이 하위 인터페이스) |
List | 순서 유지 (Index 번호), 중복 가능 (ArrayList, LinkedList, Vector) |
Set | 순서 없음, 중복 불가능 (HashSet, TreeSet, LinkedHashSet) |
Map | 키(Key) - 값(Value) 쌍으로 이루어진 데이터 (HashMap, TreeMap, LinkedHashMap) |
✅ Queue (FIFO) & Stack (LIFO)도 존재
📌 2. List 인터페이스
💡 순서 유지, 중복 저장 가능
🔹 2.1 List 종류
ArrayList | 배열 기반, 빠른 읽기 성능 / 느린 삽입, 삭제 |
LinkedList | 이중 연결 리스트 기반, 빠른 삽입, 삭제 / 느린 읽기 |
🔹 2.2 ArrayList 예제
System.out.println("== ArrayList ==");
ArrayList<String> arrayList = new ArrayList<>();
// 데이터 추가
arrayList.add("Java");
arrayList.add(0, "Python");
arrayList.add("JavaScript");
System.out.println(arrayList); // [Python, Java, JavaScript]
// 데이터 읽기
String firstElement = arrayList.get(0);
System.out.println(firstElement); // Python
// 데이터 수정
arrayList.set(2, "TypeScript");
System.out.println(arrayList); // [Python, Java, TypeScript]
// 데이터 삭제
String removedElement = arrayList.remove(1);
System.out.println(removedElement); // Java
System.out.println(arrayList); // [Python, TypeScript]
// 리스트 크기
System.out.println(arrayList.size()); // 2
// 리스트 비우기
arrayList.clear();
System.out.println(arrayList); // []
📌 3. Set 인터페이스
💡 중복 X, 순서 X
🔹 3.1 Set 종류
HashSet | 빠른 데이터 접근, 정렬 및 순서 보장 X |
LinkedHashSet | 삽입 순서 유지 |
TreeSet | 자동 정렬 지원 |
🔹 3.2 HashSet 예제
Set<String> programming = new HashSet<>();
programming.add("Java");
programming.add("Python");
programming.add("C++");
programming.add("JavaScript");
System.out.println(programming); // [C++, Python, Java, JavaScript]
programming.add("Java");
System.out.println(programming); // [C++, Python, Java, JavaScript]
boolean result = programming.remove("Python");
System.out.println(programming); // [C++, Java, JavaScript]
System.out.println(result); // true
System.out.println(programming.contains("Java")); // true
System.out.println(programming.contains("Python")); // false
System.out.println(programming.isEmpty()); // false
programming.clear();
📌 4. Map 인터페이스
💡 키(Key) - 값(Value) 구조
✅ 키는 중복 불가능, 값은 중복 가능
✅ 키 기반으로 빠른 검색 가능
🔹 4.1 Map 종류
HashMap | 빠른 검색, 삽입 (순서 X) |
LinkedHashMap | 삽입 순서 유지 |
TreeMap | 키 값에 따라 자동 정렬 |
🔹 4.2 HashMap 예제
Map<String, Integer> students = new HashMap<>();
// 데이터 추가
students.put("전창현", 27);
students.put("문창배", 27);
students.put("문창현", 277);
System.out.println(students); // {전창현=27, 문창배=27, 문창현=277}
// 데이터 조회
System.out.println(students.get("전창현")); // 27
// 데이터 삭제
students.remove("문창현");
System.out.println(students); // {전창현=27, 문창배=27}
// 키 존재 여부 확인
System.out.println(students.containsKey("전창현")); // true
System.out.println(students.containsKey("문창현")); // false
// 크기 확인
System.out.println(students.size()); // 2
// 모든 키 가져오기
System.out.println(students.keySet()); // [전창현, 문창배]
// 모든 값 가져오기
Collection<Integer> ages = students.values();
System.out.println(ages); // [27, 27]
// 키-값 쌍 가져오기
System.out.println(students.entrySet());
🎯 소감
📌 컬렉션 프레임워크는 데이터 관리의 핵심 개념이므로 반드시 숙지해야 한다!
📌 상황에 맞는 자료구조 선택이 중요하다!
📌 뒤에 배울 내용에서도 자주 사용되므로 연습이 필요하다!
🚀 마무리
이번 학습을 통해 컬렉션 프레임워크의 개념을 확실히 정리할 수 있었다! 🎯