AI Academy
프로모션
CodeGym University
학습
강좌
과제
설문 & 퀴즈
게임
도움말
일정
커뮤니티
사용자
포럼
채팅
아티클
성공 사례
활동
후기
구독
라이트 테마
강의
리뷰
회사 소개
시작
학습 시작
Start learning now
진행 상황
코스
퀘스트 맵
레슨
Java 25
Java 25
레벨 28
컬렉션 요소 필터링
JAVA 25 SELF
레벨 28,
레슨 0
이 강의에서는
Java
에서 컬렉션을 필터링하는 실전 방법을 살펴봅니다: 루프
for
를 사용하는 명령형 접근, 반복 중 안전한 삭제를 위한
Iterator
와
remove()
메서드, 그리고 현대적이고 간결한 해결책
removeIf
(Java 8+). 또한 왜
ConcurrentModificationException
이 발생하는지, 언제 새 리스트를 만들어야 하는지, 그리고 필터 조건을 작성할 때 자주 하는 대표적인 실수에 대해 논의합니다.
컬렉션 변환
JAVA 25 SELF
레벨 28,
레슨 1
이 강의에서는 컬렉션을 명령형으로 변환하는 방법을 살펴봅니다:
List<String>
에서
List<Integer>
를 얻기(예: 문자열 길이), 도메인 모델 객체(
Product
)에서 필드 추출(이름/가격),
addAll()
이나 중첩 루프를 통해 중첩 컬렉션을 “평탄화”하기, 그리고
if
와
startsWith
같은 메서드로 필터링과 변환을 결합하기. 마지막에는 전형적인 실수도 다룹니다: 원본 컬렉션 변경, 잘못된 타입 캐스팅(
ClassCastException
), 그리고 효율성 문제.
요소를 안전하게 삭제하기
JAVA 25 SELF
레벨 28,
레슨 2
실무에서 컬렉션에서 요소를 삭제하다 보면
ConcurrentModificationException
이 자주 발생합니다. 이 강의에서는 왜
for-each
순회 중에 이런 일이 생기는지,
Iterator.remove()
로 안전하게 삭제하는 방법,
ListIterator
가 왜 유용한지, 언제
removeIf
(Java 8+)를 선택해야 하는지, 그리고
Map
을 올바르게 다루는 법을 다룹니다. 마지막에는 실전 팁과 흔한 실수도 정리합니다.
EnumSet/EnumMap
JAVA 25 SELF
레벨 28,
레슨 3
이 강의에서는 열거형을 위한 특화 컬렉션 —
EnumSet
과
EnumMap
을
java.util
패키지 관점에서 살펴봅니다: 내부 구조(비트 마스크와
ordinal
기반 인덱싱), 왜
HashSet
/
HashMap
보다 더 빠르고 더 컴팩트한지, 어디에 적용할지(플래그, 매핑 테이블, 유한 상태 기계),
enum
변경 및 직렬화와 관련된 함정, 그리고 모범 사례와 흔한 실수를 코드 예제로 정리합니다.
LinkedHashSet/LinkedHashMap
JAVA 25 SELF
레벨 28,
레슨 4
이번 강의에서는 순서를 기억하는 컬렉션:
LinkedHashSet
과
LinkedHashMap
을 다룹니다. 이들이 삽입 순서와 접근 순서를 어떻게 유지하는지,
removeEldestEntry
를 재정의해 몇 줄로 LRU 캐시를 만드는 방법,
HashSet
/
HashMap
과 비교한 메모리와 성능 비용, 안정적인 테스트와 리포트를 위해 결정적 순서가 필요한 경우, 그리고 큐/스택에 대해서는
LinkedList
보다
ArrayDeque
가 왜 더 나은지도 설명합니다. 마지막에는 흔한 실수와 피하는 방법을 정리합니다.
Please enable JavaScript to continue using this application.