【发布时间】:2019-11-05 20:14:00
【问题描述】:
我有玩家以他们的名字命名(String name),我有情人(int Lovers)。
每个玩家都有许多情人。每个玩家都有一个唯一的名字。 我想要一种按数字对它们进行排序的方法,如果两个或更多玩家有相同数量的恋人,我希望它们按字母顺序排序。
我考虑过使用Map 和Hashmap。
Map<String, Integer> Players= new HashMap<>();
Players.put("Christiano Ronaldo",10);
Players.put("Messi",50);
Players.put("Kaka",10);
Players.put("Ronaldinho",100);
List sortedKeys=new ArrayList(Players.keySet());
Collections.sort(sortedKeys);
我发现这种方式不适合我的情况。
我的期望是按恋人的数量排序,如果恋人的数量相等,那么我们按姓名字母顺序对它们进行排序。
【问题讨论】:
-
您可以考虑将 player 封装到
class Player中,其中包含String name和List<Player> lovers字段。然后你可以使用Collections.sort()并传入一个自定义的Comparator。见mkyong.com/java/…
标签: java sorting data-structures