List<String> 转为Map
时间: 2023-10-29 14:30:21 浏览: 36
<String, Integer> 的实现方式是什么?
你可以使用 Java 8 中的 Stream API 和 Collectors 工具类来实现将 List 转为 Map。具体实现方式如下:
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Map<String, Integer> map = list
.stream()
.collect(Collectors.toMap(Function.identity(), s -> 1));
此代码将以每个字符串作为 key,以1作为 value 将所有元素放入 Map 中。
相关问题
如何将List<String> 转为Map<Long, String>
可以使用Java 8的Stream API和Collectors工具类来将List<String>转为Map<Long, String>,具体代码如下:
```
List<String> list = Arrays.asList("1:a", "2:b", "3:c");
Map<Long, String> map = list.stream()
.map(s -> s.split(":"))
.collect(Collectors.toMap(
arr -> Long.parseLong(arr[0]),
arr -> arr[1]
));
```
这里先将每个字符串按照":"进行分割,得到一个包含两个元素的数组,然后使用Collectors.toMap方法将这个数组转为Map<Long, String>,其中第一个元素作为键,第二个元素作为值。注意,如果列表中有重复的键,会抛出IllegalStateException异常。如果需要处理重复键的情况,可以使用Collectors.toMap的第三个参数来指定合并函数。
list<VO> 转为 Map<String, List<String>>
可以使用Java 8的流(Stream)来将List<VO>转换为Map<String, List<String>>。下面是一个示例代码:
```java
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) {
List<VO> voList = getListOfVO(); // 假设这是一个List<VO>的实例
Map<String, List<String>> resultMap = voList.stream()
.collect(Collectors.groupingBy(VO::getKey, Collectors.mapping(VO::getValue, Collectors.toList())));
System.out.println(resultMap);
}
// 假设VO类的定义如下
static class VO {
private String key;
private String value;
public VO(String key, String value) {
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public String getValue() {
return value;
}
}
// 获取一个List<VO>的示例数据
private static List<VO> getListOfVO() {
List<VO> voList = List.of(
new VO("key1", "value1"),
new VO("key2", "value2"),
new VO("key1", "value3"),
new VO("key2", "value4")
);
return voList;
}
}
```
运行以上代码,将会输出以下结果:
```
{key1=[value1, value3], key2=[value2, value4]}
```
这里使用了`Collectors.groupingBy`方法来根据VO对象的key属性进行分组,然后使用`Collectors.mapping`方法将VO对象的value属性提取出来并转换为List<String>。最终得到的结果是一个Map,其中key是VO对象的key属性,value是对应的value属性的列表。