- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 lambda 中的 groupingBy(...)
函数创建 map 。现在我面临的问题是我无法将列表转换为特定条件下的 map
代码:
List<Integer> list = IntStream
.range(0,120)
.mapToObj(Integer::new)
.collect(Collectors.toList());
预期功能:
我需要收集一个映射,其键是键值,如键从 0 到 120,值会像这样增加
[]
[0]
[0, 1]
[0, 1, 2]
[0, 1, 2, 3]
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4, 5]
[0, 1, 2, 3, 4, 5, 6]
[0, 1, 2, 3, 4, 5, 6, 7]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
.
.
.
//so on upto 120
Map<Integer, List<Integer>> myMapOne = new HashMap<>();
for (Integer inteter : list) {
myMapOne.put(inteter, list.subList(0, list.indexOf(inteter)));
}
我正在尝试的(想法):
Map<Integer, Integer> myMap = list
.stream()
.collect(Collectors.groupingBy(Integer::new, list.subList(0, Integer::new)));
错误:无法在 groupingBy()
内转换为 List 或不确定我是否遗漏了什么
如何解决?欢迎任何帮助
编辑:
我需要在这里使用方法引用吗?
方法如下
public static List<Integer> getList(Integer index, List<Integer> list) {
return list.subList(0, list.indexOf(index));
}
最佳答案
你可以这样做:
IntStream.range(0, 120)
.boxed()
.collect(Collectors.toMap(
x -> x,
y -> IntStream.range(0, y).boxed().collect(Collectors.toList())));
您可以使用 boxed()
而不是 .mapToObj(Integer::new)
。然后您可以使用 toMap()
将值映射到键和值。键只是身份,所以你可以只使用 x->x
,值是一个新列表,可以用 IntStream.range(0, y).boxed( ).collect(Collectors.toList())
关于java - 使用 lambda 将列表转换为 map ,但长度有限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39303668/
我有一个关于复杂性的简单问题。我在 Java 中有这段代码: pairs是 HashMap包含 Integer作为键,它的频率为 Collection作为一个值。所以: pairs = new Has
对于我的应用程序,我需要在 Coq 中使用和推理有限映射。谷歌搜索我发现 FMapAVL 似乎非常适合我的需求。问题是文档很少,我还没有弄清楚我应该如何使用它。 作为一个简单的例子,考虑以下使用对列表
我有一个主表tblAssetMaster A和一个移动表tblMovement M。 我想提取所有 Assets 及其当前位置,因此需要获取每个 Assets 的最新移动条目。 字段 A: Asset
我想让我的网站内容居中,但仅限于网页的特定宽度。所以当它超过 500px 时,我希望内容被修复,无法进一步拉伸(stretch)。无论如何都要这样做,还是我最好把所有东西都修好?希望有意义的是添加一些
我正在尝试批量删除 Backbone 模型的集合,如下所示...... collection.each(function(model, i){ model.destroy(); }); 我发现当每
我想要一个软件环境,在其中我可以在具有特定资源的硬件上测试我的软件的速度。例如,当我的主机硬件是具有 12GB RAM 的 3GHz 四核 amd64 时,该程序在具有 24 Mb RAM 的 800
在 Eclipse 中,我得到了 BigInteger.valueOf(2).pow(31093) 的值,但没有得到 BigInteger.valueOf(2).pow(31094) 的值(它是空的)
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预
我想将 2 个表从本地 sql server 2000 上传到托管的 mysql。第一个表有 17 列和 680 行,其他 10 列和 8071 行。 我首先使用 xampp mysql 尝试离线,它
我在 S3 中自动生成并保存了静态 html 文件。有时文件大小达到 2mb。是否可以使用javascript来获取html文件的一部分,显示它,当用户到达页面底部时,获取下一部分等等? 最佳答案 X
我是一名优秀的程序员,十分优秀!