问题标签 [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.
java - 如何使用 java 8 流和 lambda 来 flatMap 一个 groupingBy 结果
我有一个包含其他对象列表的对象,我想返回由容器的某些属性映射的包含对象的平面图。是否可以仅使用流和 lambdas?
让我们假设一个操作列表:
结果将是善良的
但我想把它弄平
java - 带有自定义键的 Java 8 groupingby
我有一系列格式如下的输入字符串:
我需要得到一个Map<String, List<String>>
具有以下结构的:
问题是,要生成每种类型,我需要在每个输入字符串上调用这样的函数:
我非常有信心 Streams 和 Collectors 可以做到这一点,但我正在努力获得正确的咒语来实现它。
java - 使用 Streams 实现 Java Pivot 表
这几天我一直在为这个问题苦苦挣扎。我正在尝试使用 Java Streams 创建 Pivot 功能。我只需要实现 SUM、COUNT、MAX、MIN 和 AVERAGE。对于输入,我得到一个枢轴列索引、一个枢轴行索引数组以及要计算的值。
问题是数据在 List < List < Object>> 中,其中 Object 可以是 String、Integer 或 Double。但直到运行时我才会知道。我必须以 List < List < Object>> 的形式返回我的结果。
我在使用 MAX/MIN 时遇到问题(我假设 AVERAGE 将类似于 MAX 和 MIN)
为了以多个表值为中心,我创建了一个类来使用我的第二个 groupingBy
这不会编译,我不确定要比较什么,在哪里将对象转换为 int 或者我什至需要。我想用一个流来完成这一切,但我不确定这是否可能。我做错了什么,或者我可以做不同的事情。提前致谢。
java - 在给定父母列表的情况下检索唯一类的孩子列表
所以,想象一下我有一个父要素类。然后是那个类的一堆孩子,比如 Dotted、Stripped、Blank,都继承自 Feature。
给定一个List<Feature>
我想获取该列表中所有属于 Dotted 类的对象。
List<Feature> features
仅供参考,我首先用features.add(New Dotted())
, features.add(New Blank())
,features.add(New Blank())
等填充...
我尝试过这样的事情:
但它不起作用,因为 Collector.ToList() 不会将结果转换filter()
为List<Dotted>
java - groupingBy 在应该使用 String 时返回 Object 作为键作为 Map
假设我有一个 Brand 对象列表。POJO 包含一个返回字符串的 getName()。我想
Map<String, Brand>
用字符串作为名称来构建一个...但我希望密钥不区分大小写。
如何使用 Java 流完成这项工作?试:
不起作用,我认为这是因为我没有正确使用 groupBy 。
java - Java8,有过滤收集器吗?
我想对集合进行分组,但我不希望聚合包含一些值。最好的解决方案是什么?
解决方案可能是收集器filtering(Predicate,Collector)
,但没有这样的收集器。有没有办法在不实现自己的收集器的情况下做到这一点?
java-8 - Java 8 Stream“收集和分组”映射到多个键的对象
我有以下对象:
现在我有一个包含 3 个 Item 对象的列表:
Person 对象如下:
我想根据所有者和创建者的管理者对 Item 对象流进行分组。结果Map<Person, List<Item>>
应如下所示:
我认为使用 Stream 和 Collector API,我可以先制作从 Item 到管理器Map<Item, List<Person>>
的映射,然后再反向映射。但是有没有办法只使用 Stream 和 Collectors 来制作我想要的映射?
java-8 - Java 8 Stream flatMap 和 group by 代码编译器错误
此代码在 Eclipse Mars 中编译良好,但在 Eclipse Luna 中出现以下错误:
类型不匹配:无法转换
Map<Object,List<Object>>
为Map<String,List<WeblabInfo>>
如果我没有在 Eclipse Luna中将返回的值分配给Map
with ,则错误是 at和带有消息的语句:Map<String, List<Item>> managersItem =
Map.Entry::getKey
Map.Entry::getValue
该类型
Map.Entry
未定义getKey(Object)
适用于此处的类型”。
我做错了什么?
java - 如何对 List 中的元素进行分组到地图> 在保持秩序的同时?
我有一个从 Google Places API 获取的 Google PlaceSummary 对象列表。我想按他们的 Google Place ID 收集和分组它们,但也保留元素的顺序。我认为可行的是:
但它甚至不会编译。看起来应该根据Collectors 上的 Java API 文档。
以前我有这个代码:
然而.collect()
,Streams API 的标准不保留后续元素的顺序HashMap
(显然因为HashMap
s 是无序的)。我希望输出是 aLinkedHashMap
以便 Map 按每个桶的插入顺序排序。
但是,我建议的解决方案无法编译。首先,它不识别,PlaceSummary::getPlaceId
因为它说它不是一个函数——即使我知道它是。其次,它说我不能转换LinkedHashMap<Object, Object>
成 M. M 应该是一个通用集合,所以它应该被接受。
如何LinkedHashMap
使用 Java Stream API 将 List 转换为 a?有没有简洁的方法来做到这一点?如果太难理解,我可能会求助于 Java 8 之前的老式方法。
我注意到在将 List 转换为 LinkedHashMap 时还有另一个 Stack Overflow 答案,但这没有我想要的解决方案,因为我需要收集“这个”我专门迭代的对象。