问题标签 [collectors]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
list - Java 8 - 累积并创建新集合
使用 java 8 我想从列表中创建一个新集合并在此过程中累积一个总和。
源列表由如下所示的对象组成:
使用这样的示例列表:
结果列表应如下所示
- desc1, 10.0, 10.0
- 描述2、14.0、24.0
- 描述3、5.0、29.0
我知道如何求和以获得最终总和,在本例中为 29.0,但我想创建结果列表并同时累积总和。
我怎么能用Java8做到这一点?
java - 将列表拆分为沿元素的子列表
我有这个列表(List<String>
):
我想要这样的东西:
换句话说,我想使用null
值作为分隔符将我的列表拆分为子列表,以获得列表列表(List<List<String>>
)。我正在寻找 Java 8 解决方案。我试过了,Collectors.partitioningBy
但我不确定这是我要找的。谢谢!
arrays - 数组中的 Java 8 频率对象
我有一个Object[] array
我需要创建 map Map<Obejct, Integer>
,其中Integer
value 包含数组中键 Object 的频率。
我如何以 java 8 风格做到这一点,使用Collectors
?
java - Hashmap with Streams in Java 8 Streams 收集 Map 的值
让我们考虑一个哈希图
我在两个哈希图中都插入了一些值。
例如,
Q1)现在我想对 hashmap 中的键应用过滤条件并检索相应的值(列表)。
例如:这里我的查询是key=1,输出应该是'list1'
我写
但我不知道如何将列表检索为此流操作的输出。
Q2)我想再次对 hashmap 中的键应用过滤条件并检索相应的列表列表。
例如:这里我的查询是key=1%(即key可以是1,10,15),输出应该是'list1','list2','list3'(列表列表)。
lambda - 如何在收集器中实现我自己的整理器?
欢迎人们!
我想知道如何实现我自己的完成器,这不是琐碎的,比如身份函数。我的收藏家的标题是
里面有一个finisher方法应该转换List<Pair<T, Double>>
成List<T>
这可以完成工作
java - 溪流到地图
我有Stream<String>
一个文件,现在我想将相等的单词组合成一个Map<String, Integer>
重要的,这个单词在Stream<String>
.
我知道我必须使用collect(Collectors.groupingBy(..))
,但我不知道如何使用它。
如果有人可以提供一些提示如何解决这个问题,那就太好了!
maven - 使用 Streams 和 Maven 时的编译错误
尝试使用Maven编译我的代码时遇到一个奇怪的编译错误,我的代码在 Eclipse 中工作,我正在使用Java 8并Files.lines
读取文件。
代码如下:
我在哪里使用collect()
方法。
谁能帮我解决这个错误?
java - Collectors.toSet() 和 HashSet
采用以下示例代码行:
我想要一个HashSet
. 对代码使用调试器,我确实得到了一个HashSet
. 我查看java.util.stream.Collectors.toSet()
了以下代码:
合同保证a Set
,执行决定a HashSet
;似乎有道理。但是,我的实现需要由 a 保证的恒定时间查找HashSet
,而不仅仅是任何旧的Set
. 如果实现toSet()
决定使用 say a FooSet
,这完全在其权利范围内,那么我的实现就会受到影响。
这个问题的最佳实践解决方案是什么?
java - 收集器分组通过 java 8
考虑这两个类
学科类:
观察者类:
并考虑这个观察者名单
到目前为止,我尝试并成功做到的是按主题对观察者进行分组,如下所示
但是我如何使用上述相同的逻辑(Collectors
, groupingBy
, method reference
,...)按主题类别对观察者进行分组?
例如,我怎样才能让订阅者订阅一个类别等于sport
使用类似这样的主题的观察者
谢谢。
java - 并行转动流时如何使用收集器
我实际上试图回答这个问题如何跳过从 Files.lines 获得的 Stream<String> 的偶数行。所以我虽然这个收集器不能很好地并行工作:
但它有效。
编辑:它实际上并没有工作;我被我的输入集太小而无法触发任何并行性这一事实愚弄了。见评论中的讨论。
我认为这行不通,因为我想到了以下两个处决计划。
1.counter
数组在所有线程之间共享。
线程 t1 读取 Stream 的第一个元素,所以满足 if 条件。它将第一个元素添加到其列表中。然后在他有时间更新数组值之前执行停止。
线程 t2,表示从流的第 4 个元素开始,将其添加到其列表中。所以我们最终得到了一个不需要的元素。
当然,既然这个收集器似乎可以工作,我想它不会那样工作。无论如何,更新都不是原子的。
2.每个Thread都有自己的数组副本
在这种情况下,更新没有更多问题,但没有什么能阻止我线程 t2 不会从流的第 4 个元素开始。所以他也不会那样工作。
所以看起来它根本不像那样工作,这让我想到了一个问题……收集器是如何并行使用的?
有人可以基本上解释一下它是如何工作的,以及为什么我的收集器在并行运行时会工作吗?
非常感谢!