gpt4 book ai didi

java - 按特定元素对对象的 ArrayList 进行排序

转载 作者:行者123 更新时间:2023-11-30 10:33:36 26 4
gpt4 key购买 nike

我有几个数组列表,每个数组列表都包含特定球队的球员数据。每个对象按顺序包含以下元素; Jersey 号码、名字、姓氏、首选位置、进球、助攻。用户决定是按进球数还是按助攻数查看数据,然后按降序显示数据。进球和助攻都是整型数据。

我将能够很好地显示数据,但我坚持的是如何根据这些特定统计信息之一对 arrayList 进行排序。因为所有团队的数据都在不同的arrayList中,需要一起排序,是否需要将arrayList合并成一个master arrayList进行排序?至于排序,我做了一些研究,看起来我需要使用比较器?有人可以为此提供一些帮助,因为我以前从未使用过这些并且很迷茫。例子会很棒。

我附上了一些代码片段,希望能提供一些清晰度。

ArrayList <blackTeam> blackTeam = new ArrayList <blackTeam>();
ArrayList <blueTeam> blueTeam = new ArrayList <blueTeam>();
ArrayList <greenTeam> greenTeam = new ArrayList <greenTeam>();
ArrayList <orangeTeam> orangeTeam = new ArrayList <orangeTeam>();
ArrayList <redTeam> redTeam = new ArrayList <redTeam>();
ArrayList <yellowTeam> yellowTeam = new ArrayList <yellowTeam>();

private void displaystatButtonActionPerformed(java.awt.event.ActionEvent evt) {
//sort arrayList by goals/assists

}

编辑:这就是我的类的设置方式,以及向它们添加数据的方式。希望这可以解决一些问题。

//add data to database
black = new blackTeam(jerseyNum, firstName, lastName, prefPosition, goals, assists);
blackTeam.add(black);

class blackTeam {
int goals, assists;
String jerseyNum, firstName, lastName, prefPosition;

blackTeam (String _jerseyNum, String _firstName, String _lastName, String _prefPosition, int _goals, int _assists) {
jerseyNum = _jerseyNum;
firstName = _firstName;
lastName = _lastName;
prefPosition = _prefPosition;
goals = _goals;
assists = _assists;
}
}

我为每个团队准备了一个这样的类(class)。

最佳答案

我建议在你的对象上使用Comparator,我假设它是Team

public class Team{
private int jerseyNumber;
private String lastName;
...
public int getJerseyNumber(){
return jerseyNumber;
}
}

如果你想根据 Jersey 号码排序,生成JeseryNumberComaparator:

import java.util.Comparator;

public class JeseryNumberComaparator implements Comparator {

@Override
public int compare(Team t1, Team t2) {

// descending order (ascending order would be:
// t1.getJerseyNumber()-t2.getJerseyNumber())
return t1.getJerseyNumber()-t2.getJerseyNumber()
}
}

它将根据 Jersey 号码对您的列表进行排序:

Collections.sort(blackTeam, new JerseyNumberComparator());

关于java - 按特定元素对对象的 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42121624/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com