【发布时间】:2020-10-17 04:53:44
【问题描述】:
我可以将 HashMap
【问题讨论】:
-
可能很简单的方法就是迭代它
-
能否在源头更改数据?避免使用
List<HashMap<...>>开头。
我可以将 HashMap
【问题讨论】:
List<HashMap<...>> 开头。
List<HashMap<String,String>> 不是List<Map<String,String>>。您可以自担风险假装和使用原始类型:
HashMap<String, List<HashMap<String,String>>> map = new HashMap<>();
Map<String,List<Map<String,String>>> cast = (Map) map;
您将收到未检查分配的警告,因为您可以这样做:
String key = "";
cast.put(key, Collections.singletonList(new TreeMap<>())); // Not a HashMap
HashMap<String, String> inserted = map.get(key).get(0);
编译时没有警告,但会抛出 ClassCastException。
【讨论】:
我建议流式传输外部和内部映射,然后分配给父引用Map
Map<String,List<hMap<String,String>>> res = map.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey,
entry->entry.getValue().stream().map(HashMap::new).collect(Collectors.toList())));
【讨论】: