Java 54 - Xây dựng phương thức so sánh compareTo và hiểu rõ về Comparable trong Java

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 ต.ค. 2024
  • Vui lòng tải code ở cuối mỗi bài học ở tại đây: titv.vn/index....

ความคิดเห็น • 118

  • @TITVvn
    @TITVvn  2 ปีที่แล้ว +2

    Link tải code: titv.vn/courses-page/lap-trinh-java-java-core/
    Nếu có câu hỏi và cần tư vấn thêm, hãy gửi câu hỏi tại đây: facebook.com/groups/titv.vn Thành viên trong nhóm luôn sẵn sàng giúp đỡ các bạn.
    Giúp anh đăng ký kênh, nhấn nút thích để video được nhiều bạn đam mê học lập trình biết đến nhé.
    Chúc các bạn học thật tốt và có một ngày thật vui.

  • @nguyenhoaiquoc5
    @nguyenhoaiquoc5 6 หลายเดือนก่อน +1

    Đây là hàm so sánh điểm trung bình của em ạ;
    @Override
    public int compareTo(SinhVien o) {
    Double a = this.diemTrungBinh;
    Double b = o.diemTrungBinh;

    return a.compareTo(b);
    }

    • @dinhthanh_203
      @dinhthanh_203 5 หลายเดือนก่อน +2

      return this.diemtb - o.diemtb;
      cách này nhanh hơn nè...

    • @nguyenhoaiquoc5
      @nguyenhoaiquoc5 5 หลายเดือนก่อน

      @@dinhthanh_203 oke bạn 🥰

  • @quocnguyen7590
    @quocnguyen7590 2 ปีที่แล้ว +1

    hay lắm bạn , rất chi tiết cho nhũng người mới lam quen

  • @frbatech2297
    @frbatech2297 ปีที่แล้ว

    Em làm phần điểm trung bình như sau: Đầu tiên em viết 1 hàm trả về giá trị của điểm trung bình( public double diemtb() {
    double a = this.diemTB;
    return a;
    }) Sau đó em viết một hàm so sánh (public int compareTo_(SinhVien o) {
    Double a = this.diemtb();
    Double b = o.diemtb();
    return a.compareTo(b);
    }) thankss thầy nhiều.

    • @TITVvn
      @TITVvn  ปีที่แล้ว

      Cảm ơn bạn đã đặt câu hỏi. Chúc bạn học thật tốt.
      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn , thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn.
      Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé.

    • @readyforwar2557
      @readyforwar2557 ปีที่แล้ว +1

      Double a = this. thuộc tính điểm tb luôn cho gọn bác ơi

    • @entgodfrey8600
      @entgodfrey8600 ปีที่แล้ว

      Không phải compareTo so sánh 2 kiểu chuỗi cho nhau. Nếu không ép kiểu về String thì vẫn so sánh kiểu dữ liệu nguyên thủy được luôn hả? Có lẽ mình nên thử lại xem?

    • @phucpham2489
      @phucpham2489 11 หลายเดือนก่อน

      return đối tượng hiện tại. compareTo(đối tượng cần so sánh) là dùng cho kiểu dữ liệu là String(chuỗi) chứ kiểu số(int,float,double) sao dùng kiểu đó dc

  • @namdophuong2609
    @namdophuong2609 4 หลายเดือนก่อน

    Cho em hỏi là sự khác nhau giữa Comparable và Comparator khác nhau như thế nào ạ. E cảm ơn !

  • @abcchannel2474
    @abcchannel2474 2 ปีที่แล้ว

    Bạn hướng dẫn rất là dễ hiểu, cám ơn bạn nhiều lắm

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn ngày vui nhé!

  • @cunsure
    @cunsure 2 ปีที่แล้ว +1

    rất hay và dễ hiểu

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn học thật tốt nhé.

  • @trunglengoc3853
    @trunglengoc3853 ปีที่แล้ว

    dạ cho em hỏi học hết khóa này rồi mình cần học những gì thì có thể đi làm đc ạ, rất mong thầy định hướng giúp em ạ

  • @heyjacknguyen
    @heyjacknguyen 3 ปีที่แล้ว +5

    // So sánh double trong CompareTo
    public int compareTo(SinhVien o) {
    if(this.diemTrungBinh

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Chào bạn, nếu có câu hỏi bạn hãy hỏi tại nhóm facebook.com/groups/titv.vn Nếu có thành viên trong nhóm biết câu trả lời họ sẽ giúp đỡ bạn. Chúc bạn học tốt.

    • @angminh5735
      @angminh5735 2 ปีที่แล้ว

      Tại sao mình làm theo kiểu câu a không được nhỉ ?? Viết ra hàm if như bạn lại được.

    • @thucinh4046
      @thucinh4046 2 ปีที่แล้ว

      @@angminh5735 Vì khác kiểu dữ liệu trả về

    • @thucinh4046
      @thucinh4046 2 ปีที่แล้ว

      @@angminh5735 Câu a thì mã sinh viên là kiểu int rồi và hàm compareTo cũng trả về kiểu int, còn điểm là kiểu double nên phải ép kết quả sang kiểu int trước đã

    • @_TruongTrungKien-mp7ru
      @_TruongTrungKien-mp7ru 2 ปีที่แล้ว

      anh cho em hỏi tại sao cái cuối lại return về 0 ạ

  • @canhvuive2945
    @canhvuive2945 2 ปีที่แล้ว

    Video rất hay hướng dẫn chi tiết

  • @thichamme
    @thichamme 2 ปีที่แล้ว

    Thông tin rất hay và bổ ích

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn ngày vui vẻ nhé.

  • @How_Discovery
    @How_Discovery 2 ปีที่แล้ว

    bạn hướng dẫn chi tiết quá. thank

  • @tuanvo3171
    @tuanvo3171 3 ปีที่แล้ว +1

    chúc mừng anh đã đạt 20k sub !!!

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Cảm ơn bạn, chúc bạn học tốt.

  • @hungle-xx1nu
    @hungle-xx1nu 3 ปีที่แล้ว

    rất chi tiết và cụ thể, trước mình so sánh toàn dùng collecttion. sort mà chả hiểu gì =((. cảm ơn b nhé.

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Chúc bạn học tập thật tốt nhé.

  • @laotieuphu8848
    @laotieuphu8848 2 ปีที่แล้ว

    Video hay quá, cảm ơn a

  • @hauphung3034
    @hauphung3034 2 ปีที่แล้ว +1

    Thầy để nền tối khó nhìn hơn để nền sáng . Cảm ơn thầy

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Cảm ơn em :D

  • @xuansonmai8657
    @xuansonmai8657 3 ปีที่แล้ว

    tks anh , a giảng rất chi tiết dễ hiểu , so great

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Chúc bạn học tốt. Hãy giúp kênh chia sẻ video clip này với các bạn trong lớp của bạn nhé. Đăng ký kênh TITV để theo dõi các video clip tiếp theo nhé.

  • @marsonhoang9610
    @marsonhoang9610 ปีที่แล้ว +3

    //solution one
    @Override
    public int compareTo(Student o) {
    return (int) (this.getMediumScore()-o.getMediumScore());


    }

    //solution two
    @Override
    public int compareTo(Student o) {
    if (this.mediumScore < o.mediumScore)
    return -1;
    else if (this.mediumScore == o.mediumScore)
    return 0;
    return 1;

    }

  • @GabrielleTran
    @GabrielleTran 2 ปีที่แล้ว

    Cam on ban nhieu ,chia se kien thuc that bo ich

  • @thaihuynguyen9336
    @thaihuynguyen9336 2 ปีที่แล้ว

    Hehe, hồi em chuyển qua dùng Mac cũng khó chịu vụ ngôn ngữ máy, nó cứ nhảy chữ hơi khó chịu ^^

  • @chuongvo6816
    @chuongvo6816 2 ปีที่แล้ว +2

    tạo constructer với hàm geter seter là bắt buộc khi lập trình hướng đối tuong hả a

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc em học thật tốt nhé.
      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

    • @HieuTran-ej4yn
      @HieuTran-ej4yn ปีที่แล้ว

      tùy nha

    • @HieuTran-ej4yn
      @HieuTran-ej4yn ปีที่แล้ว

      có số trường hợp k cần

    • @chuongvo6816
      @chuongvo6816 ปีที่แล้ว

      @@HieuTran-ej4yn ok thanks

  • @funnytv2414
    @funnytv2414 2 ปีที่แล้ว +1

    video hay

  • @tv-nguyen3554
    @tv-nguyen3554 ปีที่แล้ว

    Nay qua Mac rồi hả thầy🤣

  • @GabrielleTran
    @GabrielleTran 2 ปีที่แล้ว

    Very helpful video
    Thank you so much 😊

  • @_TruongTrungKien-mp7ru
    @_TruongTrungKien-mp7ru 2 ปีที่แล้ว +1

    thầy cho em hỏi làm sao để chuyển int sang double để chúng ta so sánh điểm trung bình ạ

    • @ngockhanh8243
      @ngockhanh8243 2 ปีที่แล้ว

      bạn để điểm trung bình là Double thay vì kiểu nguyên thủy là double thì sẽ có phương thức compareTo của Double để so sánh đó

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

    • @phanvantai9452
      @phanvantai9452 2 ปีที่แล้ว

      @@ngockhanh8243 Còn không thì cứ thực hiện trừ 2 diemTrungBinh đó rồi ép kiểu về int là đc

  • @honglinh154
    @honglinh154 2 ปีที่แล้ว

    cám ơn thầy

  • @toanhoang7604
    @toanhoang7604 2 ปีที่แล้ว

    hay quá sếp ơi!!

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn ngày vui nhé.

  • @jujobinmrquynh6186
    @jujobinmrquynh6186 ปีที่แล้ว

    hay quá anh ơi

  • @truongduong4998
    @truongduong4998 2 ปีที่แล้ว

    rất hay

  • @codepham
    @codepham ปีที่แล้ว

    a dùng máy mới từ bài này nè hehe

  • @minhantran8434
    @minhantran8434 3 ปีที่แล้ว

    Cảm ơn anh hay quá ạ

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Chào bạn, bạn đăng ký kênh youtube của TITV nhé.
      Sau đó nếu có câu hỏi, bạn vui lòng gửi vào nhóm này facebook.com/groups/titv.vn các thành viên của nhóm sẽ hỗ trợ cho bạn. Chúc bạn một ngày vui vẻ.

  • @thieuchannels8481
    @thieuchannels8481 ปีที่แล้ว

    Cho mình hỏi là sao hàm compareTo tham số là String vậy sao a lại truyền Obj vào vẫn đc vậy ạ
    E chưa hiểu nó ss Obj với nhau kiểu gì

    • @TITVvn
      @TITVvn  ปีที่แล้ว

      Cảm ơn bạn. Chúc bạn học thật tốt.
      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn , thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn.
      Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé.

    • @huyngokhanh7204
      @huyngokhanh7204 ปีที่แล้ว +1

      Obj mang kiểu dữ liệu String đó b,

  • @TienTran-om3wp
    @TienTran-om3wp 3 ปีที่แล้ว

    anh có thể cho em hỏi tại sao em khai báo mã số sinh viên là String thì lại k dùng đk compareTo ạ

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Chào bạn, bạn hãy hỏi tại nhóm facebook.com/groups/titv.vn Nếu có thành viên trong nhóm biết câu trả lời họ sẽ giúp đỡ bạn. Chúc bạn học tốt. Đăng ký kênh TITV để theo dõi các video clip tiếp theo nhé.

  • @Hosavn
    @Hosavn 2 ปีที่แล้ว

    Mình dùng Double.compare để so sánh 2 giá trị đúng không thầy

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn học thật tốt nhé, nếu có câu hỏi, bạn hãy gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé.

  • @phamdacthienk17dn4
    @phamdacthienk17dn4 2 ปีที่แล้ว

    macbook là thầy bấm phím tắt sysout ra bằng cách nào z ạ

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      cmd + space em nhé
      Mời bạn tham gia và gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

    • @phamdacthienk17dn4
      @phamdacthienk17dn4 2 ปีที่แล้ว

      @@TITVvn dạ e bấm sysout rồi sau đó cmd + space cũm kh được lun thầy 🥺

  • @nguyenvanuc4478
    @nguyenvanuc4478 2 ปีที่แล้ว

    đã học xong ạ

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn học tốt. Hãy giúp kênh chia sẻ video clip này với các bạn trong lớp của bạn để cùng học nhé.

  • @ungpham4688
    @ungpham4688 2 ปีที่แล้ว +2

    Kiểu khai báo Interface bài này lạ quá. Không tạo ra một interface ở class riêng khác như bài trước

    • @huyngokhanh7204
      @huyngokhanh7204 ปีที่แล้ว +1

      gì v b??? interface này có sẵn mà

    • @phucdoan7958
      @phucdoan7958 ปีที่แล้ว +1

      Nó có sẵn trong thư viện rồi không cần tạo ra nữa nếu muốn biết thêm thì đè ctrl rùi click vào Comparable là hiểu

    • @lofichill03
      @lofichill03 ปีที่แล้ว

      ở bài trước hình như thầy cố ý tạo Interface riêng để chúng ta dễ hình dung và làm wen hay sao á

    • @minhnhutang593
      @minhnhutang593 ปีที่แล้ว

      @@lofichill03 này có thư viện sẵn rồi bạn mấy cái kia hình như cũng có á trong collection hay gì đó

  • @2tham
    @2tham ปีที่แล้ว +1

    So Sánh DTB:
    public int compareTo (SinhVien o) {
    return (this.diemtrungbinh > o.diemtrungbinh) ? 1:-1 ;
    }

  • @chienphung9633
    @chienphung9633 ปีที่แล้ว

    nếu muốn sắp xếp 1 list sinh viên theo các tiêu chí trên thì phải làm sao, bởi vì tôi thấy hàm compareTo này chỉ ss 2 đối tượng với nhau

    • @TITVvn
      @TITVvn  ปีที่แล้ว

      Bạn viết hàm sắp xếp lại List

    • @vutran1805tr
      @vutran1805tr ปีที่แล้ว

      bạn thử dùng lamda expression xem

  • @rosyangelina2163
    @rosyangelina2163 2 ปีที่แล้ว

    bài hay, many thanks

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว +1

      Chúc bạn ngày vui nhé!

  • @yughiole7088
    @yughiole7088 2 ปีที่แล้ว

    doan dau anh dung mac OS sao run the :)))

  • @STPCTGAMING
    @STPCTGAMING ปีที่แล้ว +1

    Hơi rối nhưng vẫn hiểu😂

  • @nhivivuive1820
    @nhivivuive1820 2 ปีที่แล้ว

    HAY

  • @tapthoisaotruc
    @tapthoisaotruc 2 ปีที่แล้ว

    Chúc mưng đạt 30k bạn nhé

  • @ThuyDuong-iu2rv
    @ThuyDuong-iu2rv 2 ปีที่แล้ว

    HAY WA BAN OI

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn ngày vui vẻ.

  • @phatthanh9048
    @phatthanh9048 3 ปีที่แล้ว

    anh chỉ em xài java trên cavans đen đen này đi ạ

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Cảm ơn bạn, bạn đăng ký kênh youtube của TITV nhé.
      Sau đó nếu có câu hỏi, bạn vui lòng gửi vào nhóm này facebook.com/groups/titv.vn các thành viên của nhóm sẽ hỗ trợ cho bạn. Chúc bạn một ngày vui vẻ.

  • @HieuTran-ej4yn
    @HieuTran-ej4yn ปีที่แล้ว

    comprable để làm gì thế ạ

    • @nguyenquanghau7158
      @nguyenquanghau7158 ปีที่แล้ว

      Theo mình nghĩ thì thầy dạy để làm quen thôi, bạn có thể k cần implements Comparable ở bài này vẫn được(ý mình là tự tạo hàm rồi so sánh kiểu chuỗi ). Nhưng mục đích implements Comparable là để bổ trợ cho hàm sort, học xong bài 61 sẽ hiểu.

    • @HieuTran-ej4yn
      @HieuTran-ej4yn ปีที่แล้ว

      @@nguyenquanghau7158 là hiện tại chưa cần hiểu cái comparable với compareTo đúng k b

  • @laplesi1372
    @laplesi1372 2 ปีที่แล้ว

    good like

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Thanks for the visit

  • @lamchithanh3400
    @lamchithanh3400 2 ปีที่แล้ว

    ok

  • @thamtv212
    @thamtv212 3 ปีที่แล้ว

    bua nay a dau tu may moi ha

    • @TITVvn
      @TITVvn  3 ปีที่แล้ว

      Vẫn máy macbook cũ thôi, nhưng anh gỡ bỏ Windows trên macbook rồi.

  • @tungnguyen3551
    @tungnguyen3551 2 ปีที่แล้ว

    ko liên quan nhưng lúc này thầy đã đổi qua dùng Macbook :D

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Bạn hãy gửi câu hỏi tại nhóm facebook.com/groups/titv.vn nếu có thành viên trong nhóm biết câu trả lời họ sẽ sẵn sàng giúp đỡ bạn. Đăng ký kênh và chia sẻ cho các bạn khác cùng học nhé. Chúc bạn học thật tốt.

  • @MinKk08
    @MinKk08 2 ปีที่แล้ว +1

    ...

  • @AnimeLife203
    @AnimeLife203 ปีที่แล้ว +1

    Thật sự thì em sẽ tối ưu phần code này lúc rảnh
    public int compareTo(SinhVien o) {
    if(this.mediumScore > o.mediumScore) {
    return 1;
    }else if(this.mediumScore < o.mediumScore) {
    return -1;
    return 0;
    }

    • @namekha305
      @namekha305 11 หลายเดือนก่อน

      return 1, return -1 là sao vậy bác, mong bác giải thích ạ

    • @QuaninVN
      @QuaninVN 9 หลายเดือนก่อน

      ​@@namekha305ko xem video à

  • @HuyLe-om9ew
    @HuyLe-om9ew ปีที่แล้ว +1

    @Override
    public int compareTo(Sv_compareto o) {
    // TODO Auto-generated method stub
    if(this.diemTb > o.diemTb || this.diemTb < o.diemTb) {
    return this.diemTb - o.diemTb;
    }else {
    return 0;
    }
    }

    • @AnimeLife203
      @AnimeLife203 ปีที่แล้ว

      mk thấy code bạn chưa dc ép kiểu

  • @HuyNguyen-cb9uo
    @HuyNguyen-cb9uo ปีที่แล้ว

    Em làm phần điểm trung bình như sau anh ơi
    @Override
    public int compareTo(SinhVien o) {
    return this.diemTrungBinh - o.diemTrungBinh;
    }

  • @CườngTạ-m2w
    @CườngTạ-m2w 3 หลายเดือนก่อน

    khong biet dung hay sai
    return (int) (getDiemTB() - o.getDiemTB());

  • @phucdoan7958
    @phucdoan7958 ปีที่แล้ว +1

    @Override
    public int compareTo(SinhVien o) {
    // TODO Auto-generated method stub
    double tenThis = this.getDiemTrungBinh();
    double ten = o.getDiemTrungBinh();
    return (tenThis > ten ) ? 1 : -1;
    }

  • @CFFM318
    @CFFM318 ปีที่แล้ว

    public double compareToDiem(SinhVien o) {
    // 0
    // Dua tren so sanh ten
    // Ten: Adam, Barack Obama, Nguyen Van A , Tran Thi Thanh Yen
    Double diemThis = this.getDiemTrungBinh();
    Double diemO=o.getDiemTrungBinh();

    return diemThis.compareTo(diemO);
    }

  • @LinhNguyen-mv7io
    @LinhNguyen-mv7io 2 หลายเดือนก่อน

    @Override
    public int compareTo(SinhVien o) {
    return Double.compare(this.diemTrungBinh, o.diemTrungBinh);
    }

  • @ungpham4688
    @ungpham4688 2 ปีที่แล้ว

    return (int) (this.diemTrungBinh - o.diemTrungBinh);

  • @lulumilu2703
    @lulumilu2703 2 ปีที่แล้ว

    ok

    • @TITVvn
      @TITVvn  2 ปีที่แล้ว

      Chúc bạn ngày vui nhé.