java - 按数组的一部分对数组进行排序
问题描述
我有一个像这样的对象数组
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)对列表进行排序,或者如何按分数和平均值排序打印?. 我可以删除“排名”。
解决方案
java.util.Arrays
您可以通过传入“比较器”对象来使用类中的 Arrays.sort 方法。比较器应该比较您想要排序的属性。
假设您的Football
班级有返回“points”和“GD”的方法,这将按点对团队进行排序,并且具有相同点数的团队按“GD”排序。
Arrays.sort(FootballTeam, Comparator.comparing(Football::getPoint)
.thenComparing(Football::getGD));