Rom*_*nov 2 java list hashmap java-stream
我想将列表转换为地图,其中键只是一个计数器,它需要遵守列表的顺序。我目前有这个代码:
private static Map<String, String> convertListToMap(final List<String> list) {
AtomicInteger counter = new AtomicInteger(0);
Map<String, String> map = list.stream().collect(Collectors.toMap((c) -> {
Integer integer = counter.incrementAndGet();
return integer.toString();
}, (c) -> c));
return map;
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
试试这个方法。
static Map<String, String> convert(List<String> list) {
return IntStream.range(0, list.size()).boxed()
.collect(Collectors.toMap(n -> String.valueOf(n+1), list::get,
(a, b) -> a, LinkedHashMap::new));
}
Run Code Online (Sandbox Code Playgroud)
笔记:
(a, b) -> a并没有真正对此做出贡献。LinkedHashMap::new确保订单的供应商得以保留。不幸的是,没有一个Collector.toMap允许 aSupplier没有该merge功能。| 归档时间: |
|
| 查看次数: |
131 次 |
| 最近记录: |