CodeGym
AI Academy
Khuyến mãi
CodeGym University
Học tập
Khóa học
Bài tập
Khảo sát & Bài kiểm tra
Trò chơi
Trợ giúp
Lịch
Cộng đồng
Người dùng
Diễn đàn
Trò chuyện
Bài viết
Câu chuyện thành công
Hoạt động
Đánh giá
Gói đăng ký
Chủ đề sáng

Bài học

  • Đánh giá
  • Về chúng tôi
Bắt đầu
Bắt đầu học
Bắt đầu học ngay
  • Tiến độ của tôi
  • Khóa học
  • Bản đồ Quest
  • Bài học
  • Hợp đồng equals và hashCode

    JAVA 25 SELF
    Cấp độ 29,Bài học 0
    Trong bài giảng này, chúng ta sẽ tìm hiểu cách xác định tính bằng nhau của các đối tượng trong Java cho đúng: sự khác nhau giữa so sánh tham chiếu bằng toán tử == và so sánh nội dung bằng phương thức equals, vì sao hợp đồng equals/ hashCode là tối quan trọng đối với các bộ sưu tập như HashSet và HashMap, và cách liên hệ điều đó với compareTo trong Comparable. Các ví dụ từng bước, best practices và phân tích những lỗi điển hình sẽ giúp bạn tránh bẫy khi làm việc với bảng băm và các bộ sưu tập có sắp xếp.
    Có sẵn
  • Lớp Objects: các phương thức equals, hashCode, hash

    JAVA 25 SELF
    Cấp độ 29,Bài học 1
    Trong bài giảng này, chúng ta tìm hiểu “dao đa năng” java.util.Objects: so sánh an toàn với Objects.equals, tính hash ngắn gọn bằng Objects.hash, ủy quyền so sánh qua Objects.compare, bảo đảm giá trị không- null bằng Objects.requireNonNull, cũng như dùng Objects.isNull/ Objects.nonNull trong Stream. Chúng tôi sẽ trình bày cách hiện thực đúng equals/ hashCode/ compareTo, phân tích các tình huống thực tế và lỗi thường gặp khi làm việc với HashMap/ HashSet.
    Có sẵn
  • Giao diện Comparable: triển khai, compareTo

    JAVA 25 SELF
    Cấp độ 29,Bài học 2
    Trong bài giảng này, chúng ta tìm hiểu về thứ tự tự nhiên của các đối tượng trong Java thông qua giao diện Comparable và phương thức compareTo: tại sao cần đến nó, cách triển khai đúng, cách hoạt động của việc sắp xếp các collection ( Collections.sort và List.sort), so sánh theo nhiều trường, xử lý giá trị null và tính nhất quán với equals/ hashCode. Chúng ta sẽ xem các thực hành tốt nhất, lỗi thường gặp và ví dụ thực tiễn với lớp Person.
    Có sẵn
  • Giao diện Comparator: tạo và sử dụng

    JAVA 25 SELF
    Cấp độ 29,Bài học 3
    Trong bài giảng này, chúng ta tìm hiểu khi nào nên dùng Comparator thay vì Comparable, cú pháp và hợp đồng (contract) của phương thức compare(T o1, T o2), thực hành sắp xếp danh sách bằng Collections.sort và List.sort, tạo comparator như các lớp riêng lẻ cũng như qua lớp ẩn danh và biểu thức lambda. Chúng ta sẽ xem xét sắp xếp nhiều cấp, xử lý giá trị null, tìm kiếm bằng Collections.binarySearch, đảo thứ tự với reversed(), cùng các best practices và lỗi thường gặp (ví dụ vì sao nên dùng Integer.compare thay vì a - b).
    Có sẵn
  • Tìm kiếm và sắp xếp phần tử trong các bộ sưu tập Java

    JAVA 25 SELF
    Cấp độ 29,Bài học 4
    Trong bài giảng này, chúng ta sẽ tìm hiểu các kỹ thuật thực hành khi làm việc với bộ sưu tập: tìm kiếm phần tử bằng các phương thức contains, indexOf, lastIndexOf; tìm theo điều kiện bằng vòng lặp for và toán tử break; tìm giá trị nhỏ nhất và lớn nhất với lớp Collections. Chúng ta sẽ luyện tập sắp xếp danh sách bằng Collections.sort và List.sort, sử dụng Comparator, sắp xếp các cặp từ Map, cũng như sắp xếp đối tượng theo trường. Cuối cùng, chúng ta sẽ thảo luận các lỗi thường gặp: danh sách bất biến từ List.of, cố gắng sắp xếp Set/ Map và comparator không đúng.
    Có sẵn
Học
  • Đăng ký
  • Khóa học Java
  • Trợ giúp bài tập
  • Bảng giá
  • Cú pháp Java
Cộng đồng
  • Người dùng
  • Bài viết
  • Diễn đàn
  • Trò chuyện
  • Câu chuyện thành công
  • Hoạt động
  • Chương trình giới thiệu
Công ty
  • Về chúng tôi
  • Liên hệ
  • Đánh giá
  • Phòng báo chí
  • CodeGym cho EDU
  • Câu hỏi thường gặp
  • Hỗ trợ
CodeGymCodeGym là một khóa học trực tuyến để học lập trình Java từ đầu. Khóa học này là cách hoàn hảo để nắm vững Java cho người mới bắt đầu. Nó chứa 1200+ bài tập với kiểm tra ngay lập tức và phạm vi lý thuyết cơ bản cần thiết về Java. Để giúp bạn thành công trong học tập, chúng tôi đã triển khai một bộ tính năng tạo động lực: bài kiểm tra, dự án lập trình, nội dung về phương pháp học hiệu quả, và hỗ trợ sự nghiệp lập trình viên Java.
Theo dõi chúng tôi
Ngôn ngữ giao diện
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
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym
MastercardVisa
"Lập trình viên được tạo nên, không sinh ra" © 2026 CodeGym