stream 将list转换成2个嵌套HashMap
时间: 2023-03-22 21:02:21 浏览: 149
假设您正在使用Java编程语言,您可以使用以下代码将List转换为两个嵌套的HashMap:
```
List<String> list = new ArrayList<String>();
list.add("key1=value1");
list.add("key2=value2");
list.add("key3=value3");
Map<String, Map<String, String>> map = new HashMap<String, Map<String, String>>();
for (String item : list) {
String[] parts = item.split("=");
String key = parts[0];
String value = parts[1];
String[] nestedKeys = key.split("\\.");
String nestedKey1 = nestedKeys[0];
String nestedKey2 = nestedKeys[1];
Map<String, String> nestedMap = map.get(nestedKey1);
if (nestedMap == null) {
nestedMap = new HashMap<String, String>();
map.put(nestedKey1, nestedMap);
}
nestedMap.put(nestedKey2, value);
}
System.out.println(map);
```
这段代码将会输出一个嵌套的HashMap,其中第一层HashMap的键是List中每个元素中第一个"."之前的字符串,值是一个嵌套的HashMap,其中第二层HashMap的键是List中每个元素中第一个"."之后的字符串,值是List中每个元素中第二个"="之后的字符串。
例如,如果List中的元素是"foo.bar=baz",那么转换后的HashMap将会有一个键为"foo"的条目,值是一个包含一个键为"bar",值为"baz"的条目的HashMap。
请注意,此代码假定List中的每个元素都是以"key=value"的格式提供的,并且每个键都是一个由"."分隔的两部分字符串。如果List中的元素不符合这些条件,代码将无法正常工作。
阅读全文