국비

[ 26일차 145~152 ] 수업 정리 - 자바

코딩하는냥이 2025. 5. 21. 15:00
반응형

📌 오전 수업 내용 요약

1. TreeSet과 정렬 관련 메서드

  • TreeSet은 자동으로 오름차순 정렬됨.
  • 주요 메서드:
    • first(), last(): 최소/최댓값
    • lower(E e), higher(E e): 특정 값보다 작거나 큰 값
    • floor(E e), ceiling(E e): 특정 값과 같거나 가장 가까운 값
    • descendingSet(): 내림차순으로 정렬된 NavigableSet 반환
    • tailSet(), subSet(): 특정 범위 필터링 가능

2. TreeMap과 정렬 관련 메서드

  • TreeMap도 자동 정렬됨 (Key 기준).
  • 주요 메서드:
    • firstEntry(), lastEntry(): 가장 앞/뒤 Entry
    • lowerEntry(K key): 특정 Key보다 바로 앞 Entry
    • descendingMap(): 내림차순 Map
    • subMap(K fromKey, boolean fromInclusive, K toKey, boolean toInclusive): 범위 검색

3. ComparableComparator 사용

  • Comparable<T>: 기본 정렬 기준 정의
    • 예: Parson 클래스는 나이 기준 정렬
  • Comparator<T>: 외부 정렬 기준 제공
    • 예: FruitComparator는 가격 기준 정렬

4. Stack 클래스

  • LIFO(Last-In-First-Out) 구조
  • push()로 추가, pop()으로 제거
  • 예시: 동전 넣고 하나씩 꺼내기

📌 오후 수업 내용 요약

1. Queue 인터페이스 (FIFO 구조)

  • LinkedList로 구현
  • offer(), poll()을 사용해 순차 처리
  • 메시지 전송 시나리오 예제 (메일, SMS, 카카오톡)

2. 동기화된 Map 생성

  • Collections.synchronizedMap() 사용
  • HashMap을 쓰레드 안전하게 만들기
  • 멀티스레드 환경에서 동시에 put 처리

3. 불변 컬렉션 (Immutable Collections)

  • List.of(), Set.of(), Map.of() → 불변 컬렉션 생성
  • List.copyOf(), Set.copyOf(), Map.copyOf() → 기존 컬렉션 기반 생성
  • Arrays.asList() → 크기 고정 리스트 생성

💡 포인트 정리

  • TreeSet과 TreeMap은 자동 정렬이 특징이며, 다양한 범위 검색 메서드를 제공한다.
  • 정렬 기준을 바꾸려면 Comparable 또는 Comparator를 활용한다.
  • Stack은 후입선출, Queue는 선입선출 구조다.
  • 멀티스레드 환경에서는 synchronizedMap()으로 안전하게 데이터를 처리할 수 있다.
  • 불변 컬렉션은 데이터 보호와 병렬 처리에 유리하다.

📌 정리하자면, 26일차 수업은 정렬 기반 컬렉션의 활용과 함께 스택/큐의 자료구조, 동기화된 컬렉션 사용법, 그리고 불변 컬렉션 생성까지 다양한 컬렉션 구조와 멀티스레드 환경에서의 안전한 자료 처리 방식에 대해 학습한 날이었습니다.