私は現在、いくつかのオプションパーツを持っているカレッジのための練習をしています(クラスでこれをやっていないので、配列の代わりにリストを使用していますそれで可変サイズになるでしょう)そして別のものはポイントでソートされたリストを印刷します(私はそれに今得ます)カスタムクラスを含むリストをソートする
私はPlayer.javaクラスをこのようにしています。
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;
}
}
非常にシンプル、そして私は(別のクラスで)これでリストを作成しています:
List<Player> lplayer = new ArrayList<Player>();
これで選手を追加:
lplayer.add(new Player(n,pw,c,p))`
をとついにこの統計を読む:
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.");
}
}
これは基本的にすべてのコードです。ご覧のとおり、私はすでにlist_Players関数を持っていますが、追加された順序で表示します。私は、各プレイヤーが持っているポイントでソートして印刷する方法が必要です(基本的にランキング)。
私はかなりJavaに新しいので、それを行うの非常に複雑な方法を考えてみてください。
私はすでにそれを検索してCollections.sort(list)のようなものを見つけましたが、私はここに必要なものではないと思います。
ありがとうございました!
間違いなく 'Collections.sort'が必要です。他の基準ではなくスコアでソートする必要がある場合は、 'public class Player implements Comparable'と書いて、必要なメソッドを実装してください。 –
'総選手の数を含む変数'のような簡単なことをコメントする必要がある場合は、より良い変数名を使用する必要があります。 –
'int search_Player(String n)'のようなメソッドが何をするのかを考えるのも非常に難しいです。 'Player getPlayerByName(String name)'については(前のメソッドの署名が明示的に割り当てによって求められていない限り)? –