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());

🎯 소감

📌 컬렉션 프레임워크는 데이터 관리의 핵심 개념이므로 반드시 숙지해야 한다!
📌 상황에 맞는 자료구조 선택이 중요하다!
📌 뒤에 배울 내용에서도 자주 사용되므로 연습이 필요하다!
🚀 마무리
이번 학습을 통해 컬렉션 프레임워크의 개념을 확실히 정리할 수 있었다! 🎯