首页 > 解决方案 > 按数组的一部分对数组进行排序

问题描述

我有一个像这样的对象数组

Football[] FootballTeam = new Football[4];
 FootballTeam[i] = new Football(ranked, names, played, w, d, l, GF, GA, GD,points);
 FootballTeam[0] = 0  Real Madrid 3   2   0   1   7:6 1   5
 FootballTeam[1] = 1  Barcelona   3   0   0   3   4:9 -5  1
 FootballTeam[2] = 2  Valencia    3   1   0   2   7:7 0   5
 FootballTeam[3] = 3  Atletico Madrid 3   3   0   0   9:5 4   7

如何按点和平均值(GD)对列表进行排序,或者如何按分数和平均值排序打印?. 我可以删除“排名”。

标签: javaarrayssortingprinting

解决方案


java.util.Arrays您可以通过传入“比较器”对象来使用类中的 Arrays.sort 方法。比较器应该比较您想要排序的属性。

假设您的Football班级有返回“points”和“GD”的方法,这将按点对团队进行排序,并且具有相同点数的团队按“GD”排序。

Arrays.sort(FootballTeam, Comparator.comparing(Football::getPoint)
                                    .thenComparing(Football::getGD));

推荐阅读