dartques = {'Color':[], 'Fruits':[], 'Hobbies':[]};
Run Code Online (Sandbox Code Playgroud)
如何使用地图中的索引访问值?我只需要使用索引访问键或值。就像我们在列表中所做的一样
=>list[1]
Har*_*shi 21
要通过索引访问值,有两种方法:
通过索引获取键并使用键获取值:
final key = dartques.keys.elementAt(index);
final value = dartques[key];
Run Code Online (Sandbox Code Playgroud)通过索引获取值:
final value = dartques.values.elementAt(index);
Run Code Online (Sandbox Code Playgroud)您可以根据地图上存储数据的方式和内容来选择方法。
例如,如果您的地图由包含duplicate
值的数据组成,我建议使用第一种方法,因为它允许您key
先获取索引,然后再获取该值,这样value
您就可以知道该值是否是所需的值。
但是,如果您不关心duplication
并且只想根据 Index 查找值,那么您应该使用第二种方法,因为它直接为您提供值。
注意:根据Genchi Genbutsu 的回答,为了方便起见,您还可以使用扩展方法。
重要提示Map
:由于dart的默认实现是LinkedHashmap
你很幸运。否则,泛型Map
因在许多编程语言中不维护顺序而闻名。
如果针对默认为 的任何其他语言询问此问题HashMap
,则可能无法回答。
小智 9
你可以这样得到
var element = dartques.values.elementAt(0);
Run Code Online (Sandbox Code Playgroud)
同样对于 Dart 2.7+ 你可以编写扩展函数
extension GetByKeyIndex on Map {
elementAt(int index) => this.values.elementAt(index);
}
var element = dartques.elementAt(1);
Run Code Online (Sandbox Code Playgroud)
您可以使用keys
和values
方法将其转换为两个列表:
var ques = {'Color':['a'], 'Fruits':['b'], 'Hobbies':['c']};
List keys = ques.keys.toList();
List values = ques.values.toList();
print (keys);
print (values);
Run Code Online (Sandbox Code Playgroud)
输出:
[Color, Fruits, Hobbies]
[[a], [b], [c]]
Run Code Online (Sandbox Code Playgroud)
因此keys[0]
,例如,您可以使用 正常访问它。
归档时间: |
|
查看次数: |
6422 次 |
最近记录: |