当前位置: 首页 > 知识库问答 >
问题:

在Java中排序多个int/String数组而不丢失顺序

廉子民
2023-03-14

数组:

static String[] names;
static int[] points;
static int[] goals_scored;
static int[] goles_received;

在一个练习中,我被要求获得积分数组中第二高的数字,然后按名称显示第二高的球队,然后是积分、进球等,例如:

Name: FC Spain
Points: 50
Goals scored: 43
Goals received: 27

我想过对数组进行排序,但问题是,如果我对积分数组进行排序,那么,积分的第二高位置将不会与名称/目标数组相同,我也不能对目标数组进行排序,因为最好的团队(例如)不会有最大目标。对吗?

但在另一个执行中,我必须根据逻辑标准(如升序)显示团队的数据,所以我不知道该怎么办。

编辑:此外,用户输入数组可以具有的最大值。

共有1个答案

桂杰
2023-03-14

您应该创建一个具有这些字段的类(名称、点数、得分和接收的目标)。然后你应该创建一个这个类的数组。创建这些团队。并根据它的目标进行分类...所以这个类应该是这样的:

public class Team{
    private String name;
    private int points;
    private int goalsScored;
    private int goalsRecieved;


    public Team(String teamName, int p, int gs, int gr){
        this.name = teamName;
        this.points = p;
        this.goalsScored = gs;
        this.goalsRecieved = gr;
    }


   public int getPoints(){
       return this.points;
   }

   public void setPoints(int points){
       this.points = points;
   }

   public void setName(String name){
       this.name = name;
   }
}

然后,您应该在某个地方创建该类的数组,并按点对其排序:

public class Main{
     public static void main(String[] args){
            Team[] teams = new Team[numberOfTeams];
            //initialize every team in the array like this:
            teams[0] = new Team("Spain", 50, 43, 27);
            //and so on for every team
            //and then sort them out by teams[index].getPoints();
     }
}
 类似资料:
  • 问题内容: 我想执行一个命令,并想重定向stderr和stdout,如下所示: stderr和stdout->仅应在保持顺序的同时写入logs.log文件 stderr->应该打印到SCREEN并也写入errors.log 到目前为止,我可以将它们重定向到屏幕和文件log.txt,如下所示: 但是以上不是我所需要的。 为了更清楚地说明结果是什么。 执行命令后,我只需要在屏幕上看到stderr的结果

  • 嗨,我目前有4个数组都持有不同的数据,我遇到的问题是我想按字母顺序对其中一个数组进行排序,通常我会这样做 其中数组将是我想按字母顺序排序的数组,但我需要数组一起排序。 比如说我的数组是这样的 我想根据Pet数组进行排序,我的输出应该是这样的,所有的第三个值现在都是第一个,第一个值现在是第三个(这比简化了很多,我的实际数组包含数千个输入) 有没有一种简单的方法可以做到这一点,我可以对一个数组进行排序

  • 问题内容: 我有多个数组,我想根据其中一个的排序顺序对所有数组进行排序,如下所示: 我希望函数执行后,数组将如下所示: 问题答案: 您可以执行以下操作:首先根据键控数组的索引的索引对它们进行索引的值对它们进行排序,然后使用: 如果要在任何类型的集合上使它通用(但仍以与std lib集合算法相同的样式返回数组): 以及带有自定义比较器的版本:

  • 我有多个数组,我想根据其中一个数组的排序顺序对所有数组进行排序,如下所示: 我预计函数执行后的数组将如下所示:

  • 问题内容: 我有数组喜欢 我想按数字顺序而不是字母顺序进行排序。 如果我用 我得到 代替 问题答案: 我认为到目前为止,将s 转换为s 的最简单,最有效的方法是: 然后对整数数组进行排序。如果确实需要,您可以随时将其转换回: 一种替代方法是使用Comparator接口来精确指示元素的比较方式,但这可能等同于将每个值转换为任意值-使上述方法更加有效。

  • 我试图在sortBabies中按字母顺序排序婴儿,但我无法交换位置,因为错误出现为“ArrayList类型中的方法集(int, Baby)不适用于参数(int, string)”。我将名称1和名称2设置为字符串值,以便我能够比较,但现在我无法交换位置。