java - 如何使用 Java 8 流组合逻辑以根据列表大小条件添加到列表

标签 java java-stream

是否可以使用 Java 8 流进行组合,如果“getCount()”有某个值,则继续向同一列表添加元素,直到列表的大小大于 getCount()。

List<RequestObject> li = results().map(req -> new RequestObject(req())).collect(Collectors.toList());

if(Objects.nonNull(getCount())){
    while(li.size() <= getCount()) {
        li.addAll(li);
    }
}

最佳答案

如果您被允许使用 Java 9,它会为流提供 dropWhile(predicate)takeWhile(predicate)

int count = 0;
List<RequestObject> li = results()
                         .map(mapping)
                         .takeWhile(obj -> {count++ <= getCount()});

编辑:如果是 Java 8,您可以查看 this answer

关于java - 如何使用 Java 8 流组合逻辑以根据列表大小条件添加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59629640/

相关文章:

java - 使用 java 8 Stream 将字符串映射

java - 如何使用 Java Stream 逐行读取文件

java - KafkaEmbedded 为 SecurityProtocol 抛出 ClassNotFoundException

Java Ubuntu Linux Swing 空白窗口

java - MYSQL插入查询不更新数据到JAVA表中

java - 中级流操作未按计数进行评估

java - 如何从流中获取列表列表而不是数组列表?

java - ConstraintLayout 中的消失元素留下幽灵空间

java - 使用 SDK 对 AWS S3 存储桶中的对象进行计数时计数不正确

Java 8 流将 List<Map<>> 通过相同的 <Key, Value> 分组到新的 List<Map<>>