我已经编写了此代码...
public List<TvShow> getTopTvShows(int n) {
return tvShows
.stream()
.
}
我想做的是这个...
我有此数据...
TV show count
a 1
b 2
c 3
a 1
b 2
c 3
现在,我要为每个不同的电视节目执行此操作,对它们的计数求和,然后按最高(降序)n
排序并返回它们。因此,例如,a
应该为2(1 + 1),b
应该为4(2 + 2),c
应该为6(3 + 3)。然后,如果我以2作为n
传递,则列表应返回仅包含b
和c
,因为当计数以降序排列时,c
和b
在顶部。如何使用流来做到这一点?还有使用传统的for循环执行此操作的方法吗?
TvShow是我制作的一个类。它具有属性:名称(例如a,b,c)和count。对于这两个属性,它都有getter方法。
public List<TvShow> getTopTvShows(int n) {
return tvShows.stream()
.sorted(Comparator.comparing(TvShow::getCount).reversed())
.limit(n)
.collect(Collectors.toList());
}