2

我得到了一个我想按左字段排序的对列表,我成功地做到了,并获得了第 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());
4

1 回答 1

4

如果您想收集正确的元素,请使用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());
于 2015-06-26T08:02:30.037 回答