收藏家在 java 中收集了一对列表

Collectors collect a list of pair in java

我得到了一个要按左侧字段排序的对列表,我成功地做到了并获得了第 25 个元素,但现在的问题是我想将右侧的元素收集到列表中(甚至他们两个)但我不知道该怎么做 toList().

有问题
return listOfTokens.stream()
        .sorted((o1, o2) -> Double.compare(o1.getLeft().getCompare(terms.field.docCount),
                                           o2.getLeft().getTfIdf(terms.fielddocCount)))
        .limit(25)
        .collect(toList());

如果你想收集恰到好处的元素,使用map :

return listOfTokens.stream()
.sorted((o1, o2) -> Double.compare(o1.getLeft().getCompare(terms.field.docCount), o2.getLeft().getTfIdf(terms.fielddocCount)))
        .limit(25)
        .map(o -> o.getRight())
.collect(toList());

如果左右两边都要收藏:

return listOfTokens.stream()
.sorted((o1, o2) -> Double.compare(o1.getLeft().getCompare(terms.field.docCount), o2.getLeft().getTfIdf(terms.fielddocCount)))
        .limit(25)
        .flatMap(o -> Stream.of(o.getLeft(),o.getRight()))
.collect(toList());