vì vậy tôi hiện đang thực hiện một bài tập cho trường đại học có một số phần tùy chọn (vì chúng tôi chưa thực hiện điều này trong lớp), một trong số đó là sử dụng danh sách thay vì mảng (do đó, nó sẽ có kích thước biến đổi) và một danh sách in khác được sắp xếp theo các điểm (tôi sẽ đến đó ngay bây giờ)Sắp xếp danh sách chứa lớp tùy chỉnh
Vì vậy, tôi có lớp Player.java giống như thế này.
public class Player {
String name;
String password;
int chips;
int points;
public Player (String n, String pw, int c, int p) {
name = n;
password = pw;
chips = c;
points = p;
}
public String getName() {
return name;
}
public void setName (String n) {
name = n;
}
public void setPW (String pw) {
password = pw;
}
public String getPW() {
return password;
}
public void setChips (int c) {
chips = c;
}
public int getChips() {
return chips;
}
public void setPoints (int p) {
points = p;
}
public int getPoints() {
return points;
}
}
Khá đơn giản, sau đó tôi là tạo ra một danh sách với điều này (trong lớp khác):
List<Player> lplayer = new ArrayList<Player>();
Thêm người chơi với điều này:
lplayer.add(new Player(n,pw,c,p))`
Và cuối cùng đọc số liệu thống kê của họ với điều này:
public int search_Player (String n) {
String name;
int i = 0;
boolean found = false;
while ((i <= tp) && (!found)) {
name = lplayer.get(i).getName();
if (name.equals(n)) {
found = true;
}
i++;
}
return (found == true) ? i-1 : -1;
}
public Player show_Player (int i) {
return lplayer.get(i);
}
public void list_Players() {
Collections.sort(lplayer);
int i2;
if (tp > 0) { // variable which contains number of total players
for (int i = 0;i<tp;i++) {
i2 = i+1;
System.out.println ("\n"+i2+". "+lplayer.get(i).getName()+" [CHIPS: "+lplayer.get(i).getChips()+" - POINTS: "+lplayer.get(i).getPoints()+"]");
}
}
else {
System.out.println ("There are no players yet.");
}
}
Vì vậy, về cơ bản là tất cả mã. Như bạn có thể thấy tôi đã có một hàm list_Players nhưng nó chỉ in nó theo thứ tự nó được thêm vào. Tôi cần một cách để in được sắp xếp theo các điểm mà mỗi người chơi có (về cơ bản là một thứ hạng).
Như bạn có thể thấy tôi khá mới với java vì vậy hãy cố gắng không đưa ra một cách rất phức tạp để làm điều đó.
Tôi đã tìm kiếm và tìm thấy những thứ như Collections.sort (danh sách) nhưng tôi đoán đó không phải là những gì tôi cần ngay tại đây.
Cảm ơn bạn!
Bạn chắc chắn cần 'Bộ sưu tập.sort'. Nếu bạn chỉ cần sắp xếp theo điểm số và không phải bất kỳ tiêu chí nào khác, thì hãy viết 'public class Player thực hiện Comparable' và thực hiện phương thức cần thiết. –
Nếu bạn cần phải bình luận những điều đơn giản như 'biến chứa số lượng tổng số người chơi' bạn thực sự cần phải sử dụng tên biến tốt hơn. –
Nó cũng rất khó để lý luận về những gì một phương pháp như 'int search_Player (String n)' nào. Điều gì về 'Player getPlayerByName (String name)' (trừ khi chữ ký phương thức cũ được yêu cầu một cách rõ ràng bởi việc gán)? –