如何将Map<String,List<Double>>键与新列表映射的循环改写为Lambda表达式?
用Lambda表达式改写Map键与列表的关联逻辑
原代码通过遍历latLng的键集合,按索引顺序将latLngMercator中的列表与对应键关联存入新Map。用Lambda表达式可以借助IntStream实现:
// 先将latLng的键集合转为有序列表,确保索引对应 List<String> keys = new ArrayList<>(latLng.keySet()); IntStream.range(0, keys.size()) .forEach(i -> map.put(keys.get(i), latLngMercator.get(i)));
说明
- 先把
latLng.keySet()转为ArrayList,这样能通过索引直接获取对应位置的键,保证和原循环的遍历顺序一致 - 用
IntStream.range生成从0到键数量的索引流,遍历每个索引完成键与latLngMercator元素的关联 - 注意:如果
latLng是普通HashMap,其键集合的顺序是不确定的,可能导致关联结果不符合预期;如果需要固定顺序,建议使用LinkedHashMap存储latLng
内容的提问来源于stack exchange,提问作者luckymanStefan
相关产品推荐
相关产品推荐

