每个唯一的演出总数之和

问题描述 投票:-1回答:1

我已经编写了此代码...

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传递,则列表应返回仅包含bc,因为当计数以降序排列时,cb在顶部。如何使用流来做到这一点?还有使用传统的for循环执行此操作的方法吗?

TvShow是我制作的一个类。它具有属性:名称(例如a,b,c)和count。对于这两个属性,它都有getter方法。

java stream
1个回答
0
投票
public List<TvShow> getTopTvShows(int n) {
  return tvShows.stream()
             .sorted(Comparator.comparing(TvShow::getCount).reversed())
             .limit(n)
             .collect(Collectors.toList());
}
© www.soinside.com 2019 - 2024. All rights reserved.