![]() |
1
2
使用流IPA可以在一次通过给定数据集的过程中实现这一点,而不会增加内存消耗(
i、 e.结果将仅包含
为此,您可以创建一个自定义
这就是这个通用收集器的实现方式。
输出
笔记 ,在密钥集变为空(即所有结果数据都已提取)后,流的其他元素将被忽略,但仍需要处理所有剩余的数据。 |
![]() |
2
1
对于ID列表,您可以使用一个映射,然后在检索后分配它们(如果存在)。
如果要测试它,可以使用以下方法:
编辑为只允许检查某些类型 如果您有两种以上的类型,但只想检查某些类型,您可以按如下操作。
测试与此类似,只是需要包括其他类型。
|
![]() |
3
1
在我看来,双流解决方案是最具可读性的。它甚至可能是使用流的最有效的解决方案。 在我看来,避免多个流的最佳方法是使用经典循环。例如:
目前尚不清楚这是执行一次迭代还是两次迭代更有效。它将取决于
有两个标志的复杂内容是如何复制电路的短路行为
但是正如你所看到的,使用2流的原始解决方案显然比上面的更容易理解。 使用流的主要目的是简化代码。这与效率无关。当你试图做一些复杂的事情来提高流的效率时,你很可能首先就违背了使用流的(真正的)目的。 |
![]() |
4
0
可以按类型分组并检查生成的映射。
我想
|
![]() |
5
0
我推荐一个传统的for loop。除了易于扩展之外,这还可以防止多次遍历集合。 你的代码看起来像是将来会被泛化的东西,因此我的泛型方法。 下面是一些伪代码(有错误,只是为了说明)
|
![]() |
6
0
沿着这些路线的东西可能会起作用,但它会贯穿整个流程,不会在第一次出现时停止。 但是假设一个小流,每种类型只有一个Id,为什么不呢?
|
![]() |
7
0
我们可以使用
对于这个场景,我修改了如下代码
并且得到
|
![]() |
John Smith · Java按值对映射进行分组,其中值为列表 2 年前 |
![]() |
AliCa · 如何将csv文件映射到列表 3 年前 |
![]() |
AAryz · 为什么Java 8流只能从API级别24获得? 7 年前 |
![]() |
Alex Bloomberg · 使用Java流生成json对象 7 年前 |
![]() |
Juan M · Java 8映射未按值正确排序[重复] 7 年前 |
![]() |
Eric Lilja · 从嵌套流中收集一组对象 7 年前 |