【发布时间】:2020-01-24 11:35:04
【问题描述】:
我有一个ArrayList,看起来像这样:
ArrayList<TravelData> listOfTravels;
而TravelData 对象包含以下元素
int id;
String groupName;
String guideName;
这就是我初始化数组列表的方式:
listOfTravels.add(new TravelData(1,"group a", "Ross"));
listOfTravels.add(new TravelData(2,"group a", "Chandler"));
listOfTravels.add(new TravelData(3,"group a", "Monica"));
listOfTravels.add(new TravelData(4,"group b", "Phoebe"));
listOfTravels.add(new TravelData(5,"group b", "Rachel"));
listOfTravels.add(new TravelData(6,"group c", "Joey"));
listOfTravels.add(new TravelData(7,"group c", "Rachel"));
listOfTravels.add(new TravelData(8,"group d", "Chandler"));
我想获得该列表中最常见的 3 个组和指南。 在这个例子中:
Top 3 groups: "group a", "group b", "group c"
Top 3 guides: "Rachel", "Chandler", "Ross"
(向导的第三名可能是其他任何人,因为罗斯、莫妮卡、菲比和乔伊的出场次数相同)。
我找到了像 how to get the most common element in a list 这样的好答案,但它只适用于整数的 ArrayList,并且只显示第一个最常见的元素。
【问题讨论】:
-
在链接的问答中,查看
collect(Collectors.groupingBy(TravelDate::getGroupName, Collectors.counting())),然后按值排序以获得相应的值。同样适用于TravelDate::getGuideName。 -
您的解决方案是什么。到目前为止你尝试了什么?请用您的解决方案更新问题。