CodeGym
학습
강좌
과제
설문 & 퀴즈
게임
도움말
일정
커뮤니티
사용자
포럼
채팅
아티클
성공 사례
활동
후기
구독
라이트 테마

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • Set: HashSet 및 TreeSet, 요소의 고유성

    JAVA 25 SELF
    레벨 26,레슨 3
    이 강의에서는 Java의 Set 인터페이스를 살펴봅니다: List와 무엇이 다른지, 요소의 고유성이 어떻게 보장되는지, HashSet(빠르지만 순서 없음)과 TreeSet(정렬됨) 구현이 어떻게 동작하는지, 언제 어떤 구조를 선택할지. 또한 equals()와 hashCode()의 중요한 뉘앙스, null 처리, 전형적인 과제 예시(중복 제거, 고유성 검사)와 자주 하는 실수도 다룹니다.
    사용 가능
  • 제네릭: 왜 필요한가, 기본 문법

    JAVA 25 SELF
    레벨 26,레슨 4
    “raw” 컬렉션에서 타입 안전한 코드로 넘어갑니다. 이 강의에서는 제네릭 도입 이전에 Object 기반 컬렉션이 왜 런타임 오류( ClassCastException)를 일으켰는지, 제네릭이 이를 어떻게 컴파일 단계에서 해결하는지, List<String>, Map<String, Integer> 같은 구문을 읽고 쓰는 법, “다이아몬드 연산자” <>가 무엇인지와 타입 소거(type erasure)가 왜 필요한지를 다룹니다. 또한 직접 만든 제네릭 클래스 예제와 흔한 실수도 함께 살펴봅니다.
    사용 가능
  • Collection, List, Set, Map 인터페이스: 계층 구조

    JAVA 25 SELF
    레벨 27,레슨 0
    Java 컬렉션의 기본을 살펴봅니다: 인터페이스 Collection과 그 가지인 List, Set, Queue/ Deque, 그리고 별도의 계층인 Map. 왜 Map이 Collection을 상속하지 않는지, 계층 구조는 어떻게 생겼는지, 구현 간 차이점, 핵심 메서드, 그리고 언제 무엇을 선택해야 하는지 알게 됩니다. 마지막에는 흔한 실수와 이를 피하는 방법을 정리합니다.
    사용 가능
  • Iterable 및 Iterator: 컬렉션 순회

    JAVA 25 SELF
    레벨 27,레슨 1
    이 강의에서는 인터페이스 Iterable과 Iterator를 어떻게 사용하는지 다룹니다: 메서드 iterator()가 무엇을 하는지, for-each 루프가 “무대 뒤에서” 어떻게 동작하는지, 언제 그리고 왜 hasNext()와 next()를 직접 사용해야 하는지, ConcurrentModificationException 없이 remove()로 요소를 안전하게 삭제하는 방법, 그리고 keySet(), values(), entrySet()으로 Map을 올바르게 순회하는 방법을 설명합니다. 실전 예제와 자주 하는 실수도 함께 정리합니다.
    사용 가능
  • Queue, Deque, Stack: 큐와 스택 다루기

    JAVA 25 SELF
    레벨 27,레슨 2
    이 강의에서는 Java의 큐와 스택을 다룹니다: FIFO와 LIFO 원리가 어떻게 동작하는지, Queue, Deque, Stack의 차이는 무엇인지, 최신 프로젝트에서 왜 ArrayDeque를 선택하는지, 그리고 offer/ poll/ peek 및 push/ pop/ peek 메서드를 안전하게 사용하는 방법을 설명합니다. 또한 LinkedList, PriorityQueue 예시와 인쇄 미니 앱, undo 스택을 보여 주고, 흔한 실수도 함께 살펴봅니다.
    사용 가능
  • NavigableSet/NavigableMap

    JAVA 25 SELF
    레벨 27,레슨 3
    이 강의에서는 Java의 정렬되고 탐색 가능한 컬렉션인 NavigableSet과 NavigableMap을 다룹니다. 실습을 통해 subSet/ headSet/ tailSet으로 범위를 다루는 법, lower, floor, ceiling, higher로 ‘가장 가까운’ 요소를 찾는 법, 그리고 pollFirst/ pollLast로 양 끝을 관리하는 법을 살펴봅니다. 또한 descendingSet/ descendingMap 같은 역순 표현, ‘라이브’ view와 전형적인 케이스(일정, 우선순위, 등급/구간)를 분석합니다. 구현체로는 TreeSet과 TreeMap을 사용합니다.
    사용 가능
  • Generics wildcards

    JAVA 25 SELF
    레벨 27,레슨 4
    이 강의에서는 Java의 제네릭 불변성(invariance), 타입 매개변수 경계( extends/ super), 와일드카드 타입 ? 및 PECS 규칙(“Producer Extends, Consumer Super”)을 다룹니다. 와일드카드로 범용 메서드를 작성하는 방법, 타입 소거(type erasure)가 어떻게 동작하는지, instanceof와 배열 사용 시의 제약, 그리고 컬렉션과 Stream API 실습을 살펴봅니다. 마지막에는 자주 발생하는 실수와 이를 피하는 방법을 정리합니다.
    사용 가능
  • 컬렉션 요소 필터링

    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가 왜 더 나은지도 설명합니다. 마지막에는 흔한 실수와 피하는 방법을 정리합니다.
    사용 가능
  • 1
  • ...
  • 12
  • 13
  • 14
  • 15
  • 16
  • ...
  • 30
학습
  • 등록
  • Java 과정
  • 과제 도움
  • 요금
  • 게임 프로젝트
  • Java 문법
커뮤니티
  • 사용자
  • 아티클
  • 포럼
  • 채팅
  • 성공 사례
  • 활동
  • 제휴 프로그램
회사
  • 회사 소개
  • 연락처
  • 후기
  • 보도자료실
  • CodeGym for EDU
  • FAQ
  • 지원
CodeGymCodeGym 은(는) 처음부터 Java 프로그래밍을 배우기 위한 온라인 코스입니다. 이 과정은 초보자가 Java를 마스터하기에 완벽한 방법입니다. 즉시 검증 기능이 포함된 1200개 이상의 과제와 Java 기초 이론의 필수 범위를 제공합니다. 학습 성공을 돕기 위해 퀴즈, 코딩 프로젝트, 효율적인 학습법 관련 콘텐츠, Java 개발자 경력 관련 자료 등 동기 부여 기능들을 구현했습니다.
팔로우하기
인터페이스 언어
English Deutsch Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語
한국어
Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmers Are Made, Not Born" © 2026 CodeGym
MastercardVisa
"Programmers Are Made, Not Born" © 2026 CodeGym