2
如何使用Java 8 Lambda从流中获取一系列项目?
在上一个问题中[如何在Java 8中动态进行过滤?] Stuart Marks给出了一个很好的答案,并提供了一些有用的实用程序来处理从流中选择topN和topPercent。 我将从他的原始答案中将它们包括在这里: @FunctionalInterface public interface Criterion { Stream<Widget> apply(Stream<Widget> s); } Criterion topN(Comparator<Widget> cmp, long n) { return stream -> stream.sorted(cmp).limit(n); } Criterion topPercent(Comparator<Widget> cmp, double pct) { return stream -> { List<Widget> temp = stream.sorted(cmp).collect(toList()); return temp.stream() .limit((long)(temp.size() * pct)); }; } 我的问题是: [1]如何从具有一定数量的商品的流中获取3到7的热门商品,因此,如果流中有A1,A2 .... A10的商品,则调用 …