java - 对类的数组列表进行排序
问题描述
public class Giocatore {
private String nome;
private int punteggio;
public Giocatore(String nome, int punteggio) {
this.nome = nome;
this.punteggio = punteggio;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getPunteggio() {
return punteggio;
}
public void setPunteggio(int punteggio) {
this.punteggio = punteggio;
}
@Override
public String toString() {
return "Giocatori [nome=" + nome + ", punteggio=" + punteggio + "]";
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
public class CreazioneSquadre {
private ArrayList<Giocatore> giocatori;
private String [] squadraA;
private String [] squadraB;
public CreazioneSquadre() {
giocatori = new ArrayList<Giocatore>();
squadraA = new String[5];
squadraB = new String[5];
}
public void creazioneGiocatori() {
Random random = new Random();
giocatori.add(new Giocatore("Giocatore1" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore2" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore3" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore4" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore5" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore6" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore7" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore8" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore9" , random.nextInt(10 - 1) + 1));
giocatori.add(new Giocatore("Giocatore10" , random.nextInt(10 - 1) + 1));
}
public void SortGiocatori() {
}
public void stampa() {
for (int i = 0; i < giocatori.size(); i++) {
System.out.println((i+1) + ") Nome: " + giocatori.get(i).getNome() + " Punteggio: " + giocatori.get(i).getPunteggio());
}
}
}
嗨,伙计们,我正在尝试制作一个让我成为一支足球队的程序,这是我要改进的第一个版本。问题出在哪里?我会对 ArrayList giocatori 进行排序,但它是一个类的 ArrayList,所以当我使用 Collections.sort() 时遇到问题,我该如何对其进行排序?并且...你有什么建议可以让这个程序变得更好吗?这只是我正在工作的一个愚蠢的项目,因为每周我都会和我的朋友一起去踢足球,我想为什么不创建一个程序来让我们成为球队。为了改进它,我喜欢将“puneggio”的值作为技能并用它来选择该玩家将去的球队,如果它随机选择它,现在就足够了
解决方案
我相信这就是您正在寻找的。您可以指定自己的比较器,而无需实际实现可比较的接口。
- 第一个参数 - 要排序的列表。
- 第二个参数 - 指定
Giocatore
要排序的类的字段的比较器。
public void SortGiocatori() {
Collections.sort(giocatori, Comparator.comparing(Giocatore::getPunteggio));
}
推荐阅读
- python - 如何对协程进行速率限制并在限制后重新调用协程?
- python - 如何以特定格式从 DataFrame 创建稀疏矩阵
- python - 用于测试具有附加依赖项的模块的 Python 导入
- excel - 如何将我在 Excel 中执行某些任务的时间和日期保存在给定的单元格中?
- javascript - “sql.run 不是函数” TypeError
- ios - Swift 4:计时器崩溃 - 无法识别的选择器发送到实例
- javascript - Jquery check 的行为不像我想要的那样
- highcharts - Highcharts 平行坐标:悬停/突出显示所有系列通过点
- python - Pyspark NLP - CountVectorizer Max DF 或 TF。如何从数据集中过滤常见事件
- php - Materialise 中的表单动作