【发布时间】:2016-04-06 07:55:46
【问题描述】:
我有类似下面的东西:
public class MyClass {
private Long stackId
private Long questionId
}
说 100 的集合,其中 stackid 可能与不同的 questionId 重复。 stackId 和 questionId 之间是一对多的关系
是否有 streamy,java 8 方式转换为以下结构:
public class MyOtherClass {
private Long stackId
private Collection<Long> questionIds
}
这将是 25 个的集合,每个实例都有一个包含 4 个 questionId 的嵌套集合。
输入:
[{1,100},{1,101},{1,102},{1,103},{2,200},{2,201},{2,202},{1,203}]
输出
[{1, [100,101,102,103]},{2,[200,201,202,203]}]
【问题讨论】:
-
markhneedham.com/blog/2014/02/23/… - 首先转换为
Map<Long, Collection<Long>>,然后将该映射的条目转换为(第二种)MyClass实例。 -
我还是不明白 Which would be a collection of 25, 部分。你能扩展吗?您希望集合最多包含 25 个元素吗?剩下的我们该怎么办?
-
@Tunaki 输出的根元素比输入的少,但是每个根元素与子元素(questionIds)之间存在一对多的关系
-
但是为什么是 25?这个数字是从哪里来的?以及为什么说是 100 个集合?
-
没关系,选择数字只是为了突出减少。可能是 100 万比 1。
标签: java java-8 java-stream