问题标签 [groupingby]
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)
我正在尝试处理具有以下格式的列表:
List<Map<String, Map<String, Item>>
到Map<String, Map<String, List<Item>>
哪里Item
是一个包含两个属性的对象。
所以对于输入:
输出应该是:
我尝试使用:
但结果不是所需的,它返回Map<String, List<Map<String, Item>>>
您能否建议我如何通过 B_ 键进行分组?谢谢!
java - Collectors.grouping 通过抛出 NullPointerException
为什么 Collectors.groupingBy 会抛出 NullPointerException?
复合键:
根据之前工作正常的复合键在表中查找重复项的代码,但现在添加另一个字段会引发 NPE:(DB 中不存在空值)
更多数据:
在 40,000 条记录中;有 10 条记录,getRoleName 为空,但是当我通过全部四个分组查询计数时,它不返回任何记录,这意味着所有记录。
在 void main 中,当我尝试以下操作时,没有 NullPointerException:
笔记:
我已经处理了 getRoleName null 案例,但仍然是同样的问题。
java - 元素可以属于多个组的流分组
我正在尝试使用流 api groupingby 收集器来获取映射groupId -> List of elements
。我的案例的特殊之处在于一个元素可以属于多个组。
用一个简单的例子来演示它:假设我想使用数字2 - 10
作为分组的标识符,并且想要对数字进行分组,2 - 40
以便它们可以被看作是我的标识符的倍数。传统上我会这样做:
并得到类似的东西
为了用流来做到这一点,我试图将这个问题的答案应用到我的案例中,但没有成功。
我得到一个编译错误
不兼容的类型:推理变量 R#1 具有不兼容的边界等式约束:Map<K,D> 下限:Stream<? extends R#2>,Object 其中 R#1,A#1,T#1,K,T#2,A#2,D,R#2 是类型变量:R#1 扩展在方法 <R 中声明的对象#1,A#1>collect(Collector<? super T#1,A#1,R#1>) A#1 扩展方法中声明的对象 <R#1,A#1>collect(Collector<? super T #1,A#1,R#1>) T#1 扩展接口 Stream K 中声明的对象 扩展方法 <T#2,K,A#2,D>groupingBy(Function<? super T#2, ? extends K>,Collector<? super T#2,A#2,D>) T#2 extends Object 在方法 <T#2,K,A#2,D>groupingBy(Function<? super T#2 ,? extends K>,Collector<? super T#2,A#2,D>) A#2 扩展方法中声明的对象 <T#2,K,A#2,D>groupingBy(Function<? super T# 2,? 扩展 K>,Collector< ? super T#2,A#2,D>) D 扩展方法中声明的对象 <T#2,K,A#2,D>groupingBy(Function<? super T#2,? extends K>,Collector<? super T#2,A#2,D>) R#2 扩展在方法 <R#2>flatMap(Function<? super T#1,? extends Stream<? extends R#2>>) 中声明的对象
我究竟做错了什么?
请注意,我原来的情况不是将数字分配给它们的倍数。实际上,我的组 id 具有长值,并且列表包含自定义对象。但是当我解决了上面的例子时,我想我可以将它应用到我的案例中。我只是想用简单的方式描述问题
java - 具有分组依据的 java 收集器
我有以下MyClass
清单
还有一个grade list
我想根据gradeList获得计数
作为Map<String, Map<String, Long>>
格式。
我不知道如何申请gradeList
myList 流。
我可以听听你的意见吗?
java - 用于按多个键分组的java流
我正在尝试对包含嵌套键列表的对象列表进行分组,数据结构如下所示:
所以说如果输入是 BookInformation 列表,并按帐户和信息分组在一起,输出是 GroupedInformation 列表,我正在尝试使用
虽然不确定如何扁平化 List<List> 并按信息再次分组以获得 bookName 的列表,但不引入一些新的数据结构,如 Map<Info, List> 等。有什么想法吗?
为此添加了一个测试:
java - 流收集然后获取最新记录以求和一个值
目前,我正面临以下数据集。我的目标是通过前两列获得 Column4 组的最新总和。
我试过的是
无论????
我尝试过的部分Collectors.groupingBy
,,Collectors.maxBy
Collectors.summingInt
但这总是错误的。
我理想的地图应该是这样的:
1->bbb->348
, 1->xxx->111
, 2->xxx->1
.
请帮助让我知道是否需要任何补品。谢谢。
java - 映射后不再存在的Java Stream映射和groupingby字段
我将举一个我需要的小例子。我有这个简单的豆子:
我需要将 a 映射和分组Collection<Item>
到 a Map<Category,List<SimpleItem>>
。我尝试过这样的事情
问题是映射后,字段类别不再存在。有任何想法吗?
java - List 中的 Transforming/GroupingBy 值
给定
List<Student>
每个Student
都有的位置List<Book>
,按Book
for分组List<Student>
工作解决方案(使用 Java 9) 我已经有下面提到的工作代码
寻找:
- 我使用了 flatMap 和一个中间类 Pair。是否可以在不使用 Pair 类的中间转换的情况下实现最终结果
代码库:
输出:All books: {Java Complete Reference=[A, C], SQL=[B, C], SPRING in Action=[A, B], Java OCJP=[B]}
java - Java8 Stream:groupingBy和创建地图
我想得到以下数据结构:Map<String, Map<String, Integer>>
Given 是一个包含字段 als 基元(位置、目的地、距离)或作为键(位置)加映射(目标)的类。从每个独特的位置可以定位到许多目的地(按距离)。
关于第二个代码片段:结果应该与第一个代码相同。唯一的区别是,LocationPair 中提供的数据已经过进一步处理,因此目的地和距离已经放入其目标地图中。
我知道这一定是可能的,但不知何故我无法弄清楚如何完成它。上面的流代码片段将显示我的意思,尽管我知道它们不起作用。
非常感谢您的帮助
java - 通过java流收集到hashMap的多个组
我有以下对象:
我的问题是关于地图:因为我需要保留在第一个 list(cartItemsList) 中定义的顺序,所以地图不是一个好的解决方案。我是否必须使用linkedHashMap(或任何其他解决方案)来保留订单以及如何做到这一点?