list使用stream转map
时间: 2023-08-19 19:09:43 浏览: 91
list转String
5星 · 资源好评率100%
可以使用Java 8中的Stream来将一个列表转换为Map。假设我们有一个名为"list"的列表,其中包含了一些元素,我们想要将其转换为一个以元素作为键,以其索引作为值的Map。下面是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class StreamToListExample {
public static void main(String[] args) {
List<String> list = List.of("apple", "banana", "orange");
Map<String, Integer> map = list.stream()
.collect(Collectors.toMap(e -> e, list::indexOf));
System.out.println(map);
}
}
```
在上面的示例中,我们使用了`list.stream()`来创建一个Stream,然后使用`collect(Collectors.toMap(e -> e, list::indexOf))`来将其转换为一个Map。`e -> e`表示将元素本身作为键,`list::indexOf`表示将元素的索引作为值。
运行上述代码,输出结果将会是:`{apple=0, banana=1, orange=2}`。
请注意,如果列表中存在重复的元素,则在转换为Map时可能会抛出`IllegalStateException`。如果您希望处理重复的情况,可以使用`toMap`方法的重载版本,并提供一个合适的合并函数来解决冲突。
阅读全文