java 数组转map
时间: 2023-02-20 19:40:32 浏览: 775
在 Java 中,可以使用 Stream API 和 Collectors 类将数组转换为 Map。
例如,假设你有一个数组 `String[] arr`,并且想要将它转换为一个 Map,其中数组中的每个元素都是键,并且值都是 null,那么可以使用以下代码实现:
```
Map<String, Object> map = Arrays.stream(arr)
.collect(Collectors.toMap(Function.identity(), (x) -> null));
```
如果想要将数组中的每个元素作为键,并将其下标作为值,则可以使用以下代码:
```
Map<String, Integer> map = IntStream.range(0, arr.length)
.boxed()
.collect(Collectors.toMap(i -> arr[i], Function.identity()));
```
如果想要指定 Map 的其他属性,例如指定容量或者使用自定义的合并函数,则可以使用 Collectors.toMap(Function, Function, BinaryOperator) 方法。
例如,如果想要将数组中的元素作为键,并将其下标作为值,并指定使用自定义的合并函数,则可以使用以下代码:
```
Map<String, Integer> map = IntStream.range(0, arr.length)
.boxed()
.collect(Collectors.toMap(
i -> arr[i],
Function.identity(),
(x, y) -> y));
```
请注意,上述代码使用的是 Java 8 及更高版本的语法,如果使用的是旧版本的 Java,则可以使用循环或者 Apache Commons Lang 等工具来实现类似的功能。
阅读全文