list<String>转化为List<Map<String,String>> 用java8新特性
时间: 2023-08-29 22:07:25 浏览: 41
假设我们有一个 `List<String>`,每个字符串都是逗号分隔的键值对,例如 `"key1=value1,key2=value2"`。现在我们想要将其转换成一个 `List<Map<String, String>>`,其中每个 `Map` 代表一个键值对列表,可以使用 Java 8 的新特性来实现。
```java
List<String> list = Arrays.asList("key1=value1,key2=value2", "key3=value3,key4=value4");
List<Map<String, String>> result = list.stream()
.map(s -> Arrays.stream(s.split(","))
.map(kv -> kv.split("="))
.collect(Collectors.toMap(kv -> kv[0], kv -> kv[1])))
.collect(Collectors.toList());
```
在这个例子中,我们首先将 `List` 转换为一个 `Stream`,然后调用 `map` 操作符来对每个字符串执行转换。在 `map` 操作符中,我们首先将每个字符串按逗号分隔,然后将每个键值对按等号分隔,并将它们收集到一个 `Map` 中。最后,我们将所有 `Map` 收集到一个 `List` 中,这样就得到了一个 `List<Map<String, String>>`。
相关问题
list<String>转化为map 用java8新特性
假设你的`List<String>`中的每个字符串都是以逗号分隔的`key=value`形式,可以使用Java 8的新特性将其转换为一个`Map<String, String>`,代码如下:
```java
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]));
System.out.println(map);
```
输出结果为:
```
{key3=value3, key2=value2, key1=value1}
```
代码解释:
1. 将`List<String>`转换为`Stream<String>`,方便后续操作。
2. 对每个字符串进行分割,返回一个数组,数组的第一个元素是key,第二个元素是value。
3. 使用`Collectors.toMap()`方法将数组中的key和value转换为`Map<String, String>`。其中,第一个参数是key,第二个参数是value。这里使用lambda表达式简化代码。
4. 最后输出转换后的`Map<String, String>`。
list<String>转化为List<Map<String,String>>
假设每个字符串都是用逗号分隔的键值对,可以按照以下步骤将`List<String>`转换为`List<Map<String,String>>`:
1. 遍历`List<String>`中的每个字符串,按照逗号分隔键值对。
2. 将每个键值对转换为一个`Map<String,String>`,其中键是键值对中的第一个元素,值是键值对中的第二个元素。
3. 将每个`Map<String,String>`添加到一个新的`List<Map<String,String>>`中。
4. 返回新的`List<Map<String,String>>`。
以下是Java代码示例:
```java
List<String> stringList = Arrays.asList("key1,value1", "key2,value2", "key3,value3");
List<Map<String,String>> mapList = new ArrayList<>();
for (String str : stringList) {
String[] keyValue = str.split(",");
Map<String,String> map = new HashMap<>();
map.put(keyValue[0], keyValue[1]);
mapList.add(map);
}
System.out.println(mapList);
```
输出结果为:
```
[{key1=value1}, {key2=value2}, {key3=value3}]
```