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

강의

  • 리뷰
  • 회사 소개
시작
학습 시작
Start learning now
  • 진행 상황
  • 코스
  • 퀘스트 맵
  • 레슨
  • equals와 hashCode 규약

    JAVA 25 SELF
    레벨 29,레슨 0
    이 강의에서는 Java에서 객체의 동등성을 올바르게 정의하는 방법을 살펴봅니다: 연산자 ==로 참조를 비교하는 것과 메서드 equals로 내용물을 비교하는 것의 차이, 왜 equals/ hashCode 규약이 HashSet과 HashMap 같은 컬렉션에서 중요하며, 이를 Comparable의 compareTo와 어떻게 연결해야 하는지까지 다룹니다. 단계별 예제, best practices, 그리고 흔한 실수 분석을 통해 해시 테이블과 정렬 가능한 컬렉션을 다룰 때의 함정을 피할 수 있도록 합니다.
    사용 가능
  • Objects 클래스: equals, hashCode, hash 메서드

    JAVA 25 SELF
    레벨 29,레슨 1
    이번 강의에서는 “스위스 군용 칼” 같은 java.util.Objects를 다룹니다: Objects.equals로 안전하게 비교하고, Objects.hash로 해시를 간결하게 계산하며, Objects.compare로 비교를 컴퍼레이터에 위임하고, Objects.requireNonNull로 non- null 값을 보장하는 방법, 그리고 스트림에서 Objects.isNull/ Objects.nonNull을 적용하는 법을 설명합니다. 또한 equals/ hashCode/ compareTo의 올바른 구현을 보여 주고, 실전 사례와 HashMap/ HashSet 사용 시의 대표적인 실수를 살펴봅니다.
    사용 가능
  • Comparable 인터페이스: 구현, compareTo

    JAVA 25 SELF
    레벨 29,레슨 2
    이 강의에서는 Java에서 Comparable 인터페이스와 compareTo 메서드를 통해 객체의 자연 순서를 다룹니다. 왜 필요한지, 올바른 구현 방법, 컬렉션 정렬( Collections.sort 및 List.sort)이 어떻게 동작하는지, 여러 필드로 비교하는 방법, null 값 처리, 그리고 equals/ hashCode와의 일관성까지 살펴봅니다. 또한 Person 클래스를 이용해 모범 사례, 자주 하는 실수, 실전 예제를 함께 봅니다.
    사용 가능
  • Comparator 인터페이스: 생성과 활용

    JAVA 25 SELF
    레벨 29,레슨 3
    이 강의에서는 언제 Comparator를 Comparable 대신 사용해야 하는지, 메서드 compare(T o1, T o2)의 문법과 계약, Collections.sort 및 List.sort로 리스트를 정렬하는 실습, 별도 클래스·익명 클래스·람다식으로 컴퍼레이터를 만드는 방법을 다룹니다. 다단계 정렬, null 값 처리, Collections.binarySearch로의 검색, reversed()를 통한 순서 뒤집기, 그리고 모범 사례와 흔한 실수(예: 왜 a - b가 아니라 Integer.compare를 쓰는 것이 좋은지)도 살펴봅니다.
    사용 가능
  • Java 컬렉션에서 요소 검색과 정렬

    JAVA 25 SELF
    레벨 29,레슨 4
    이 강의에서는 컬렉션을 다루는 실용적인 기법을 살펴봅니다: contains, indexOf, lastIndexOf로 요소 검색, for 루프와 break로 조건 기반 검색, Collections 클래스로 최소/최대값 찾기. 또한 Collections.sort와 List.sort로 리스트를 정렬하고, Comparator를 사용하는 법, Map의 엔트리 정렬, 객체를 특정 필드 기준으로 정렬하는 방법을 연습합니다. 마지막으로 전형적인 실수도 다룹니다: List.of로 만든 불변 리스트, Set/ Map을 직접 정렬하려는 시도, 올바르지 않은 Comparator 등.
    사용 가능
  • Stream API 입문: 스트림이 필요한 이유

    JAVA 25 SELF
    레벨 30,레슨 0
    이 강의에서는 컬렉션을 처리할 때 명령형 접근이 얼마나 빠르게 보일러플레이트를 양산하는지, 그리고 Stream API가 코드를 선언형 스타일로 바꾸는 방법을 다룹니다: filter, map, collect 같은 연산 체인, 간단한 조합, 오류 감소, parallelStream()을 통한 손쉬운 병렬 처리. 적용 분야, 등장 배경, 피해야 할 대표적인 실수도 살펴봅니다.
    사용 가능
  • Stream API의 기본 연산: map, filter, collect

    JAVA 25 SELF
    레벨 30,레슨 1
    Stream API의 기본 연산을 단계적으로 익혀 봅니다: 컬렉션과 배열에서 스트림을 얻는 방법 ( stream(), Arrays.stream, Stream.of), 중간 연산( filter, map, distinct)과 종단 연산( collect, forEach, count)의 차이, 그리고 Collectors를 사용해 결과를 수집하는 방법( toList, toSet, joining). 실전 예제, 미니 과제, 그리고 흔한 오류 섹션이 데이터의 파이프라인 처리에 빠르게 익숙해지도록 도와줍니다.
    사용 가능
  • Stream API의 부분집합: distinct, limit, skip

    JAVA 25 SELF
    레벨 30,레슨 2
    이 강의에서는 데이터 부분집합을 다룰 때 사용하는 Stream API의 세 가지 핵심 연산을 살펴봅니다: distinct(중복 제거), limit(요소 수 제한), skip(앞쪽 요소 건너뛰기). 문자열과 객체 컬렉션에서 이들이 어떻게 동작하는지, equals/ hashCode 구현이 distinct 결과에 어떤 영향을 미치는지, 페이지네이션과 Top‑N 선정을 위해 연산을 어떻게 조합하는지, 그리고 흔히 발생하는 실수를 알아봅니다.
    사용 가능
  • forEach, peek 메서드: 부수 효과

    JAVA 25 SELF
    레벨 30,레슨 3
    이 강의에서는 부수 효과를 위한 스트림 연산을 다룹니다: 종결(터미널) 연산인 forEach와 중간(intermediate) 연산인 peek. 언제 왜 사용해야 하는지, 둘의 차이점은 무엇인지, 왜 forEach 이후에는 스트림이 “닫히고”, peek는 데이터를 변경하지 않으며 터미널 연산이 있을 때만 실행되는지 설명합니다. 실용적인 예시를 보여 주고, 놓치기 쉬운 포인트와 흔한 실수(예: ConcurrentModificationException 및 collect를 forEach로 잘못 대체하는 경우 포함)를 살펴봅니다.
    사용 가능
  • Stream으로 컬렉션 변환

    JAVA 25 SELF
    레벨 30,레슨 4
    Stream API로 컬렉션을 변환하는 실전 가이드: List ↔ Set, Collectors.toMap()으로 맵 구성(중복 처리 포함), Collectors.joining()으로 문자열 결합, 터미널/중간 연산 정리( forEach, collect, count, anyMatch 등). 본문에는 이해하기 쉬운 예제, 설명, 그리고 흔한 실수가 들어 있습니다.
    사용 가능
  • Stream API에서 sum, count, average, max, min 메서드

    JAVA 25 SELF
    레벨 31,레슨 0
    이 강의에서는 Stream API의 집계 연산을 다룹니다: count()로 개수 세기, 프리미티브 스트림( IntStream, LongStream, DoubleStream)과 sum(), average()로 합계와 평균 구하기, 그리고 min()/ max()로 극값 찾기. 또한 Optional, OptionalInt, OptionalLong, OptionalDouble 컨테이너와 값을 꺼내는 올바른 방법들( orElse(...), ifPresent(...), orElseThrow())을 별도로 설명합니다. 컬렉터 Collectors.summingInt, Collectors.averagingInt, Collectors.maxBy/ minBy를 groupingBy와 조합하는 방법도 배웁니다. 마지막에는 흔한 실수와 주의점을 정리합니다.
    사용 가능
  • reduce와 collect 메서드: 데이터 집계

    JAVA 25 SELF
    레벨 31,레슨 1
    스트림의 터미널 연산을 살펴봅니다: 범용 축약 reduce()와 강력한 수집기 collect(). identity, accumulator, combiner가 포함된 시그니처를 이해하고, Collectors의 기성 컬렉터들( toList(), toMap(), joining(), groupingBy())로 데이터를 모으는 법을 익힌 뒤, 언제 collect()를 reduce()보다 선호해야 하는지 살펴봅니다. 또한 Optional 처리, toMap()에서의 중복 처리, 병렬 스트림의 미묘한 점도 별도로 다룹니다.
    사용 가능
  • 1
  • ...
  • 13
  • 14
  • 15
  • 16
  • 17
  • ...
  • 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