java - Java Stream 根据值从地图中收集数据
问题描述
我有一个 Map<long, integer> ,我想将它转换为列表的集合,但条件是单个列表可以包含其值总和小于 X 的索引。如何通过java流实现这一点?需要更改为使用流的代码是
int count=0;
List<Long> values =new LinkedList<>();
Collection<List<Long>> collection =new LinkedList<>();
for(Map.Entry<Long,Integer> entry : maptoProcess.entrySet())
{
if(count+entry.getValue()<=maxNumberAllowed){
values.add(entry.getKey());
count+=entry.getValue();
}
else
{ collection.add(values);
count=0;
values=new linkedList();
}
}
例如:- Map{{1,300},{2,50},{3,100}} maxNumberAllowed :- 300 输出 :- 列表 [[1],[2,3]]
解决方案
推荐阅读
- wordpress - 如何在启用 Wordpresss 多站点的情况下将 www 重定向到 htaccess 中的非 www
- python - 在 Plotly 图中添加多个过滤器维度
- python - Django频道,运行服务器不工作
- javascript - 使用 chart.js jquery 在 chartdata.labels 上使用 html 标签
- c# - Azure 函数无法绑定 Ilogger
- python - Python seaborn plots:在为条形图编写函数时遇到一个小问题
- python-3.x - 从嵌入问题中删除字段值
- react-native - 无法添加本地图片
- ionic4 - 离子4将变量传递给模态
- .net - 为多个存储库创建 jenkins 作业并触发特定存储库的脚本化管道