我正在尝试将以下地图转换为2个列表。
Map map = {'Jack': 'red', 'Adam': 'blue', 'Katherin': 'green'};
我想成为这个:(顺序很重要)
List myList1 = ['Jack', 'Adam', 'Katherin'];
List myList2 = ['red', 'blue', 'green'];
这可能吗,怎么办? 我搜索了槽栈溢出,并且响应给了我这个列表(不是我要搜索的内容)
[{ Jack, 'red' }, { Adam, 'blue' }, { Katherin, 'green' }] // not what I need
感谢您的帮助和努力!
答案 0 :(得分:2)
如果我的问题正确,那么您正在寻找的内容已经内置在Map Class中。看看:
Map map = {'Jack': 'red', 'Adam': 'blue', 'Katherin': 'green'};
print(map.keys.toList());
print(map.values.toList());
输出:
[Jack, Adam, Katherin]
[red, blue, green]
我希望这是您想要的。
答案 1 :(得分:1)
要执行此操作,可以执行以下操作:
Map map = {'Jack': 'red', 'Adam': 'blue', 'Katherin': 'green'};
List<String> values = List();
List<String> keys = List();
map.forEach((k,v) => values.add(v));
print(values);
map.forEach((k,v) => keys.add(k));
print(keys);
使用forEach
来迭代映射的值,然后使用add()
方法将key
添加到一个列表中,并将values
添加到另一个列表中。
答案 2 :(得分:1)
只需填写地图,然后使用键和值可迭代的吸气剂即可形成列表。
void main() {
Map<String, String> map = Map<String, String>();
map["Jack"] = "red";
map["Adam"] = "blue";
map["Katherin"] = "green";
print(map.toString());
List<String> names = map.keys.toList();
List<String> colors = map.values.toList();
print(names);
print(colors);
}
输出
{Jack: red, Adam: blue, Katherin: green}
[Jack, Adam, Katherin]
[red, blue, green]