java List<String>转map,key为下标
时间: 2024-05-04 07:19:33 浏览: 195
Java中 List《map》把里面map中某个key相同记录的其他key 的 value 合并
可以使用Java 8中的Stream API和Collectors.toMap()方法将List<String>转换为Map<Integer, String>,其中Integer为下标,String为List中的元素。
代码示例:
```
List<String> list = Arrays.asList("a", "b", "c", "d");
Map<Integer, String> map = IntStream.range(0, list.size())
.boxed()
.collect(Collectors.toMap(Function.identity(), list::get));
```
解释一下上面的代码:
- IntStream.range(0, list.size())会生成一个从0到list.size()-1的整数流。
- .boxed()将IntStream转换为一个Stream<Integer>。
- Collectors.toMap(Function.identity(), list::get)将Stream<Integer>转换为Map<Integer, String>,其中key为元素的下标,value为List中的元素。其中Function.identity()方法返回一个恒等函数,其作用是返回输入的对象本身。
注意事项:
- 如果List中有重复的元素,则会抛出IllegalStateException异常。
- 如果想要在转换过程中处理重复的键,可以使用Collectors.toMap()方法的第三个参数来指定处理冲突的方式。
阅读全文