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

Поделиться
HTML-код
  • Опубликовано: 9 ноя 2024

Комментарии • 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.

  • @quocnguyen7590
    @quocnguyen7590 2 года назад +1

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

  • @nguyenhoaiquoc5
    @nguyenhoaiquoc5 7 месяцев назад +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 6 месяцев назад +2

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

    • @nguyenhoaiquoc5
      @nguyenhoaiquoc5 6 месяцев назад

      @@dinhthanh_203 oke bạn 🥰

  • @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 Год назад

      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

  • @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é!

  • @canhvuive2945
    @canhvuive2945 2 года назад

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

  • @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é.

  • @thichamme
    @thichamme 2 года назад

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

    • @TITVvn
      @TITVvn  2 года назад

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

  • @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 ạ

  • @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é.

  • @honglinh154
    @honglinh154 2 года назад

    cám ơn thầy

  • @laotieuphu8848
    @laotieuphu8848 2 года назад

    Video hay quá, cảm ơn a

  • @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é.

  • @GabrielleTran
    @GabrielleTran 2 года назад

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

  • @funnytv2414
    @funnytv2414 2 года назад +1

    video hay

  • @truongduong4998
    @truongduong4998 2 года назад

    rất hay

  • @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;

    }

  • @jujobinmrquynh6186
    @jujobinmrquynh6186 Год назад

    hay quá anh ơi

  • @STPCTGAMING
    @STPCTGAMING Год назад +1

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

  • @codepham
    @codepham Год назад

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

  • @toanhoang7604
    @toanhoang7604 2 года назад

    hay quá sếp ơi!!

    • @TITVvn
      @TITVvn  2 года назад

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

  • @GabrielleTran
    @GabrielleTran 2 года назад

    Very helpful video
    Thank you so much 😊

  • @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ẻ.

  • @namdophuong2609
    @namdophuong2609 5 месяцев назад

    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 !

  • @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

  • @rosyangelina2163
    @rosyangelina2163 2 года назад

    bài hay, many thanks

    • @TITVvn
      @TITVvn  2 года назад +1

      Chúc bạn ngày vui 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 ạ

  • @Truy_Vet
    @Truy_Vet 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ẻ.

  • @tv-nguyen3554
    @tv-nguyen3554 Год назад

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

  • @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 ^^

  • @nhivivuive1820
    @nhivivuive1820 2 года назад

    HAY

  • @laplesi1372
    @laplesi1372 2 года назад

    good like

    • @TITVvn
      @TITVvn  2 года назад

      Thanks for the visit

  • @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 2 года назад +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ì đó

  • @_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

  • @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.

  • @lulumilu2703
    @lulumilu2703 2 года назад

    ok

    • @TITVvn
      @TITVvn  2 года назад

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

  • @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

  • @yughiole7088
    @yughiole7088 2 года назад

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

  • @gundam1223
    @gundam1223 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.

    • @gundam1223
      @gundam1223 2 года назад

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

  • @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é.

  • @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.

  • @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ẻ.

  • @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

  • @thieuchannels8481
    @thieuchannels8481 2 года назад

    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  2 года назад

      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 2 года назад +1

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

  • @2tham
    @2tham Год назад +1

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

  • @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é.

  • @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

  • @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 Год назад

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

    • @QuaninVN
      @QuaninVN 10 месяцев назад

      ​@@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;
    }

  • @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);
    }

  • @ungpham4688
    @ungpham4688 2 года назад

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

  • @LinhNguyen-mv7io
    @LinhNguyen-mv7io 3 месяца назад

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

  • @CườngTạ-m2w
    @CườngTạ-m2w 4 месяца назад

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

  • @lamchithanh3400
    @lamchithanh3400 2 года назад

    ok