Book book = ...
Optional<Author> authorO = authors.stream
.filter(author -> author.getId().equals(book.getAuthorId()))
.findFirst();
所以我想要这样的东西。你能告诉我怎么做吗?谢谢你。
List<Book> books = ...
List<Author> authors = ...
books
.stream()
.??? // stream of pairs?
.forEach((book, author) -> {
processingOne(book, author);
if (featureFlag2) {
processingTwo(book, author);
}
...
});
在开始处理图书列表之前,我建议您创建一个以authorid
为键和author
为值的映射:
Map<Integer, Author> authorMap = authors.stream()
.collect(Collectors.toMap(Author::getAuthorId,
Function.identity()));
然后对图书列表进行流式处理,并将其处理为:
books.stream()
.forEach(book -> {
Author author = authorMap.get(book.getAuthorId());
processingOne(book, author);
if (featureFlag2) {
processingTwo(book, author);
}
//...
});
编辑:做同样事情的不同方式。这种方法利用了有状态lambda。
public Consumer<Book> processor(List<Author> authors, boolean featureFlag2) {
// use concurrent map if you use parallelStream
// authorMap is the state. It is created only once for the stream.
Map<Integer, Author> authorMap
= authors.stream()
.collect(Collectors.toMap(Author::getAuthorId,
Function.identity()));
return book -> {
Author author = authorMap.get(book.getAuthorId());
processingOne(book, author);
if (featureFlag2) {
processingTwo(book, author);
}
};
}
books.stream()
.forEach(processor(authors, featureFlag2));
问题内容: 我了解简单列表理解的工作原理,例如: 而且我也了解嵌套列表的综合工作原理: 所以,当我尝试这样做 我期望这样: 但是我得到了: 所以我有更好的方法解决问题,这给了我我想要的 但是我不明白在第一个代码中返回9个元素 问题答案: 它有9个数字的原因是因为python对待 类似于 即,它是一个嵌套循环
问题内容: 我已经使用Java已有一段时间了,但是我对循环的教育还是有点不足。我知道如何创建存在于Java中的每个循环以及如何打破循环。但是,最近我想到了: 假设我有两个嵌套循环。我可以只使用一条语句来打破两个循环吗? 这是我到目前为止所拥有的。 有没有办法做到这一点? 问题答案: 在Java中,您可以使用标签来指定要中断/继续的循环:
我想在Python2.7中并行化两个嵌套的for循环,但我自己没有成功。我不知道如何接近什么是并行化的定义。 总之,这里是单处理器代码:
这个问题是为了修改过去的试卷,如果我走上了正确的道路,我需要一些建议。 求出下面一段代码的时间复杂度,表示给定整数n的操作次数: 所以我认为外循环是,第一个内环是,第二个内环是。我只是想知道我是否有一个大致的想法,以及如何从这里继续前进。
我有一个这样的数组 我想做的是前面的模型,为其数量绘制徽标,因此三星=3,索尼=7,以此类推,将绘制3个索尼徽标和7个三星徽标。 我想出了这样的办法 但是当然,所有这些都是为了每个数组条目,呼应出名称,所以我最终打印了5个三星,打印了5个索尼,等等。 如何使其使用 qty 数组的值而不是条目数?
问题内容: 另一个Big O符号问题…以下代码的Big O是什么: 我的想法:所以分解一下,我认为外部循环是,那么每个内部循环是什么,这将导致 问题1是否正确? 问题2:在组合嵌套循环时,它总是和每个循环的Big O一样简单吗? 问题答案: 当循环计数器不相互依赖时,总是可以从内部向外进行工作。 最里面的循环始终花费时间O(n),因为无论j和i的值是多少,它都会循环n次。 当第二个循环运行时,它将