Collections.sort không chạy

Mọi người xem giúp mình đoạn code này với, đoạn Collections.sort không chạy :frowning:

private void xulylaydiem(){

    ten1 = luutru.getString("ten1", "-");
    ten2 = luutru.getString("ten2", "-");
    ten3 = luutru.getString("ten3", "-");
    ten4 = luutru.getString("ten4", "-");
    ten5 = luutru.getString("ten5", "-");
    ten6 = luutru.getString("ten6", "-");
    ten7 = luutru.getString("ten7", "-");
    ten8 = luutru.getString("ten8", "-");

    ngay1 = luutru.getString("ngay1", "-");
    ngay2 = luutru.getString("ngay2", "-");
    ngay3 = luutru.getString("ngay3", "-");
    ngay4 = luutru.getString("ngay4", "-");
    ngay5 = luutru.getString("ngay5", "-");
    ngay6 = luutru.getString("ngay6", "-");
    ngay7 = luutru.getString("ngay7", "-");
    ngay8 = luutru.getString("ngay8", "-");

    diem1 = luutru.getString("diem1", "0");
    diem2 = luutru.getString("diem2", "0");
    diem3 = luutru.getString("diem3", "0");
    diem4 = luutru.getString("diem4", "0");
    diem5 = luutru.getString("diem5", "0");
    diem6 = luutru.getString("diem6", "0");
    diem7 = luutru.getString("diem7", "0");
    diem8 = luutru.getString("diem8", "0");
    player1 = new Player(ten1,Integer.parseInt(diem1),ngay1);
    player2 = new Player(ten2,Integer.parseInt(diem2),ngay2);
    player3 = new Player(ten3,Integer.parseInt(diem3),ngay3);
    player4 = new Player(ten4,Integer.parseInt(diem4),ngay4);
    player5 = new Player(ten5,Integer.parseInt(diem5),ngay5);
    player6 = new Player(ten6,Integer.parseInt(diem6),ngay6);
    player7 = new Player(ten7,Integer.parseInt(diem7),ngay7);
    player8 = new Player(ten8,Integer.parseInt(diem8),ngay8);
    player9 = new Player(name,score,"_");


    player = new ArrayList<>();
    player.add(player1);
    player.add(player2);
    player.add(player3);
    player.add(player4);
    player.add(player5);
    player.add(player6);
    player.add(player7);
    player.add(player8);
    player.add(player9);
    
    Collections.sort(player, new Comparator<Player>() {
        @Override
        public int compare(Player sv1, Player sv2) {
            if (sv1.getDiem() < sv2.getDiem()) {
                    return -1;
            } else if (sv1.getDiem() == sv2.getDiem()) {
                    return 0;
            } else {
                    return 1;
            }

        }
    });
   }

Bạn xem kỹ lại tại đây nhé: https://docs.oracle.com/javase/tutorial/collections/interfaces/order.html

1 Like

Nản quá …

Bạn thử implement theo hướng dẫn .
public class Name implements Comparable { }

Sau đó override hàm public int compareTo(Name n) {}

Sau đó gọi List names = Arrays.asList(nameArray);
Collections.sort(names);

1 Like

có chắc là điểm của mỗi player get ra add vào list là khác nhau không hay chỉ toàn bằng 0 thôi. Debug chỗ ấy xem

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?