string list转map
时间: 2023-11-09 22:02:15 浏览: 48
可以使用Java 8的Stream API将一个字符串列表转换为Map。假设列表中的每个字符串都是以逗号分隔的键值对,可以按照以下方式进行转换:
```
List<String> list = Arrays.asList("key1:value1", "key2:value2", "key3:value3");
Map<String, String> map = list.stream()
.map(s -> s.split(":"))
.collect(Collectors.toMap(a -> a[0], a -> a[1]));
```
这将创建一个包含键值对的Map,其中键是字符串中的冒号之前的部分,值是冒号之后的部分。
相关问题
String 转List map
可以使用Java 8的Stream API将String转换为List<Map<String, String>>,具体代码如下:
```
String input = "key1=value1,key2=value2;key1=value3,key2=value4";
List<Map<String, String>> result = Arrays.stream(input.split(";"))
.map(s -> Arrays.stream(s.split(","))
.map(kv -> kv.split("="))
.collect(Collectors.toMap(kv -> kv[0], kv -> kv[1])))
.collect(Collectors.toList());
```
这段代码将输入的字符串按照分号和逗号进行分割,然后使用Stream API将每个键值对转换为Map,最后将所有的Map收集到List中。
list转map<string
可以使用Java 8的Stream API将List转换为Map<String, Object>。具体步骤如下:
1. 首先,将List转换为Stream对象。
2. 然后,使用Stream的collect()方法将Stream转换为Map。
3. 在collect()方法中,使用Collectors.toMap()方法将List中的元素转换为Map中的键值对。
下面是一个示例代码:
```java
import java.util.*;
import java.util.stream.Collectors;
public class ListToMapExample {
public static void main(String[] args) {
List<Map<String, Object>> list = new ArrayList<>();
Map<String, Object> map1 = new HashMap<>();
map1.put("id", 1);
map1.put("name", "Alice");
list.add(map1);
Map<String, Object> map2 = new HashMap<>();
map2.put("id", 2);
map2.put("name", "Bob");
list.add(map2);
// 将List转换为Map
Map<String, Object> result = list.stream()
.collect(Collectors.toMap(
// 指定Map中的键
item -> (String) item.get("name"),
// 指定Map中的值
item -> item.get("id")));
// 输出转换后的Map
System.out.println(result);
}
}
```
输出结果为:{Alice=1, Bob=2}