Flutter ListMultimap与Dart中的Multimap

Flutter ListMultimap与Dart中的Multimap,flutter,dart,Flutter,Dart,任何人都可以举个例子,解释两者的区别是什么?我已经阅读了文档,似乎两者都有相同的方法和属性。假设您正在谈论和来自(由Flatter SDK导出),Multimap是一个无法直接实例化的抽象类。它提供工厂构造函数来实例化ListMultimap 这类似于Map是一个抽象类,它提供工厂构造函数来实例化LinkedHashMap TL;DR:Multimap的默认实现是一个ListMultimap,因此它们是相同的东西。@pskink好的,但是ListMultimap能做什么,Multimap不能做什

任何人都可以举个例子,解释两者的区别是什么?我已经阅读了文档,似乎两者都有相同的方法和属性。

假设您正在谈论和来自(由Flatter SDK导出),
Multimap
是一个无法直接实例化的抽象类。它提供工厂构造函数来实例化
ListMultimap

这类似于
Map
是一个抽象类,它提供工厂构造函数来实例化
LinkedHashMap


TL;DR
Multimap
的默认实现是一个
ListMultimap
,因此它们是相同的东西。

@pskink好的,但是ListMultimap能做什么,Multimap不能做什么?如果它在multimap中说它将键映射到多个值,我认为这是相似的。你能举一个简单的例子来说明它们在用法上的不同吗?如果是同一件东西,为什么还要做另一件呢?我希望ListMultiMap会像一个普通的列表一样,以multimap作为值,您可以通过元素获取它们,但这似乎与我的想法不同。它们是分开的,原因与人们使用抽象基类的原因相同:定义接口而不需要特定的实现细节。使
ListMultimap
成为
Multimap
的一个单独类,允许
ListMultimap
提供
List
特定方法,而不影响
Multimap
接口。例如,
ListMultimap.operator[]
返回一个
List
,而
SetMultimap.operator[]
返回一个
Set
。同时,
Multimap.operator[]
承诺只返回一个
Iterable