java String str = “["apple":"apple", "banana","banana"’]”; 转换成list<map>
时间: 2024-06-02 12:05:03 浏览: 30
可以通过以下步骤将字符串转换为List<Map>:
1. 去掉字符串中的方括号和单引号,得到纯键值对字符串。
2. 使用逗号分隔符将键值对字符串分割成多个键值对字符串。
3. 对于每个键值对字符串,使用冒号分隔符将键和值分割成两个字符串,并去掉引号。
4. 将每个键值对的键和值存入一个Map中,将所有Map存入一个List中。
以下是Java代码实现:
```java
String str = "[\"apple\":\"apple\", \"banana\",\"banana\"]";
str = str.replace("[", "").replace("]", "").replace("'", "");
List<Map<String, String>> list = new ArrayList<>();
String[] pairs = str.split(",");
for (String pair : pairs) {
String[] keyValue = pair.split(":");
Map<String, String> map = new HashMap<>();
map.put(keyValue.trim(), keyValue.trim());
list.add(map);
}
```
相关问题
java list 转 Map<String,List>
以下是两种Java将List转换成Map<String,List>的方法:
1.使用foreach循环实现:
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Map<String, List<Integer>> map = new HashMap<>();
for (String str : list) {
List<Integer> tempList = new ArrayList<>();
tempList.add(str.length());
map.put(str, tempList);
}
System.out.println(map);
```
输出结果为:{orange=, banana=, apple=}
2.使用Java 8的stream()实现:
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
Map<String, List<Integer>> map = list.stream().collect(Collectors.toMap(Function.identity(), s -> {
List<Integer> tempList = new ArrayList<>();
tempList.add(s.length());
return tempList;
}));
System.out.println(map);
```
输出结果为:{orange=, banana=, apple=}
list<string>分组统计
假设你有一个包含字符串的列表,你想要对它们进行分组统计。以下是一个使用 `std::map` 来实现的示例代码:
```c++
#include <iostream>
#include <map>
#include <string>
#include <list>
int main() {
std::list<std::string> str_list = {"apple", "banana", "cherry", "apple", "cherry", "date", "cherry"};
std::map<std::string, int> str_count;
for (const auto& str : str_list) {
str_count[str]++;
}
for (const auto& pair : str_count) {
std::cout << pair.first << ": " << pair.second << std::endl;
}
return 0;
}
```
输出结果为:
```
apple: 2
banana: 1
cherry: 3
date: 1
```
该示例中,我们使用了 `std::list` 存储字符串列表,使用 `std::map` 对每个字符串进行计数,并在最后遍历 `std::map` 输出每个字符串的计数结果。
相关推荐
![jar](https://img-home.csdnimg.cn/images/20210720083455.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)