将内部HashMap类型转换为Map

时间:2020-06-26 14:46:47

标签: java casting hashmap

我可以将诸如HashMap >>的复杂结构转换为Map >>吗?

2 个答案:

答案 0 :(得分:0)

我建议流外部和内部映射,然后分配给父引用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())));

答案 1 :(得分:0)

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