将map中的key转为数组
时间: 2024-03-15 11:47:18 浏览: 14
可以通过使用Java中的`keySet()`方法将Map中的key转为数组。
示例代码如下:
```java
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.put("B", 2);
map.put("C", 3);
String[] keys = map.keySet().toArray(new String[0]);
System.out.println(Arrays.toString(keys));
```
输出结果为:
```
[A, B, C]
```
在上述代码中,`keySet()`方法返回一个包含Map中所有key的Set集合,然后使用`toArray()`方法将其转为数组。需要注意的是,`toArray()`方法需要传入一个指定类型的空数组,用于确定最终返回的数组类型,这里使用了`new String[0]`创建了一个空的字符串数组。
相关问题
map 转为数组 js
可以使用 JavaScript 中的 `Array.from()` 方法将 `Map` 转换为数组。例如:
```javascript
const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
const myArray = Array.from(myMap);
console.log(myArray); // [["key1", "value1"], ["key2", "value2"]]
```
如果只想获取 `Map` 中的值,可以使用 `Map` 的 `values()` 方法和 `Array.from()` 方法。例如:
```javascript
const myMap = new Map();
myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
const myArray = Array.from(myMap.values());
console.log(myArray); // ["value1", "value2"]
```
es6 数组如何转为 map
可以使用数组的 `reduce` 方法将数组转换为 map。例如,假设有一个数组 `arr`,其中每个元素都是一个对象,每个对象都有一个 `id` 属性和一个 `value` 属性,我们可以将其转换为一个以 `id` 为 key,`value` 为 value 的 map,代码示例如下:
```
const arr = [
{ id: 1, value: 'foo' },
{ id: 2, value: 'bar' },
{ id: 3, value: 'baz' },
];
const map = arr.reduce((acc, cur) => {
acc.set(cur.id, cur.value);
return acc;
}, new Map());
console.log(map); // Map { 1 => 'foo', 2 => 'bar', 3 => 'baz' }
```
在上面的代码中,`reduce` 方法的第一个参数是一个回调函数,它接受两个参数 `acc` 和 `cur`,分别代表累加器和当前元素。回调函数将当前元素的 `id` 作为 key,`value` 作为 value 存入累加器 `acc`(一个新创建的 Map 对象),并最终返回累加器 `acc`。最终得到的 `map` 就是转换后的结果。