[英]How do I create a Map of int and list?
我覺得我錯過了一些東西,因為這個問題似乎很容易回答。 但是,我沒有在堆棧溢出或 dart 文檔中找到任何內容。
我試過的:
var list = Map<int, List<int>>();
list[0] = [];
或者
var list = Map<int, List<int>>();
list[0] = List<int> listOne;
文檔沒有多大幫助: https://dart.dev/guides/language/language-tour#maps
類似的問題似乎不存在。
我怎么解決這個問題。 我需要使用解決方法嗎?
問候。
Map int 和列表
var listMapping = Map<int, List<int>>();
listMapping[0] = [];
listMapping[33] = [12, 0, 345, -23, 999999];
listMapping[45] = List<int>();
listMapping[45].add(101);
listMapping[45].add(109);
print(listMapping[33]);
// A map doesn't store things in a asequencial data structure e.g. List or array
// Hence it doesn't implement Iterable and hence it can not be traversed like below
/*for(List<int> list in listMapping){
print(list);
}*/
列表列表
如果 integer 鍵在您的情況下只是用於存儲索引並且將始終是連續的,例如 0,1,2,3... 那么更好的解決方案是List
of a Lists
var myLists = List<List<int>>()
myLists.add([1,2,45,56,78]);
var aNewList = [22,33,44,55];
myLists.add(aNewList);
Map<int, List<int>> map = Map<int, List<int>> ();
map[0] = [10,0];
map[1] = [];
我不確定我是否正確理解你,但你的第一次嘗試在 DartPad 中對我有用。 我只將它重命名為 map,因為它是一個包含列表的 map。
var map = Map<int, List<int>>();
map[0] = [];
您也可以將其聲明為 final,因為變量本身不會被重新分配
final map = Map<int, List<int>>();
map[0] = [];
如果對您有幫助,請給它一個類型注釋
final Map<int,List<int>> map = Map<int, List<int>>();
map[0] = [];
var list = Map<int, List<int>>();
//you cannot name a value you want to assign
list[0] = List<int> listOne;
也許這就是你想要的:
var list = Map<int, List<int>>();
final listOne = <int>[];
list[0] = listOne
這是我會做的方式
final map = {0: []};
//or for added clarity
final Map<int,List<int>> map = <int,List<int>>{0: []};
使用 map 及其鍵 (int) 和值 (List) 進行簡單操作
//assign new array to different keys
map[0] = [0,1,2,3,4];
map[2] = <int>[];
map[4] = <int>[0,3];
//remove all values with an array length smaller than two
map.removeWhere((key,value)=>value.length<2);
//remove value at key 0
map.remove(0);
//clear map
map.clear();
[注意]如果你想將一個全新的 map 重新分配給 map,你必須聲明它不是最終的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.