list<String>转化为map
时间: 2023-11-27 15:50:18 浏览: 34
将一个 `List<String>` 转换为 `Map<String, Integer>` 可以使用如下代码:
```java
List<String> list = Arrays.asList("apple", "banana", "orange", "banana", "orange", "orange");
Map<String, Integer> map = new HashMap<>();
for (String s : list) {
map.put(s, map.getOrDefault(s, 0) + 1);
}
```
这段代码会遍历 `list` 中的每个字符串,将其作为 `Map` 的 key,如果 `Map` 中已经包含这个 key,则将其对应的 value 加 1,否则将其对应的 value 赋值为 1。
执行完上述代码后,`map` 中的内容会变成:
```java
{orange=3, banana=2, apple=1}
```
相关问题
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}]
```