比方说你有一个Arraylist的HockeyPlayer对象。
Arraylist
HockeyPlayer
如果它们都具有int GoalScored变量,则如何排序?你如何按GoalScored排序?
你可以使用Collections.sort自定义Comparator。
class HockeyPlayer { public final int goalsScored; // ... }; List<HockeyPlayer> players = // ... Collections.sort(players, new Comparator<HockeyPlayer>() { @Override public int compare(HockeyPlayer p1, HockeyPlayer p2) { return p1.goalsScored - p2.goalsScored; // Ascending } });
比较部分也可以这样写:
players.sort(Comparator.comparingInt(HockeyPLayer::goalsScored));
或者,你可以制作HockeyPlayer implementsComparable<HockeyPlayer>。这定义了所有HockeyPlayer对象的自然顺序。使用a Comparator更灵活,因为不同的实现可以按名称,年龄等进行排序。
HockeyPlayer implementsComparable<HockeyPlayer>
Comparator