我想要一张带有重复键的地图。Dart 中是否有这样的映射或具有此功能的实用程序库?
\n我正在使用以下方法获取项目数:
\nmyList.forEach(\n (element) {\n if (!myMap.containsKey(element)) {\n myMap[element] = 1;\n } else {\n myMap[element] += 1;\n }\n },\n );\nRun Code Online (Sandbox Code Playgroud)\n然后将键/值转换为列表:需要切换键/值...
\nfinal keys = myMap.keys.toList();\nfinal itemSpit = keys.map((e) => e.toString().split('\xc2\xa7\xc2\xba')).toList();\nfinal values = myMap.values.toList();\nRun Code Online (Sandbox Code Playgroud)\n把它放在地图上
\nfinal map = Map();\n\n for (var i = 0; i < values.length; i++) {\n map[values[i]] = itemSpit[i];\n }\nRun Code Online (Sandbox Code Playgroud)\n显然,这些键在 for 循环中被覆盖。
\n然后\niterate over map(将键/值放入flutter小部件中)
\nfinal cells = map.entries\n .map((e) => ........\nRun Code Online (Sandbox Code Playgroud)\n如果存在重复值,第一种方法会增加值计数。所以我有这个。... {breadwhitelarge: 3, cornyellowsmall:5 ..etc..}
\n然后我必须分割字符串并得到这样的输出
\n5 bread white large\n3 corn yellow small\nRun Code Online (Sandbox Code Playgroud)\n
jul*_*101 12
Map<K,List<V>>您可以创建一个类似以下示例的映射,而不是定义允许重复键的映射:
void main() {
final map = <String, List<int>>{};
addValueToMap(map, 'Test 1', 1);
addValueToMap(map, 'Test 1', 2);
addValueToMap(map, 'Test 2', 3);
addValueToMap(map, 'Test 1', 4);
addValueToMap(map, 'Test 2', 5);
addValueToMap(map, 'Test 3', 6);
print(map); // {Test 1: [1, 2, 4], Test 2: [3, 5], Test 3: [6]}
}
void addValueToMap<K, V>(Map<K, List<V>> map, K key, V value) =>
map.update(key, (list) => list..add(value), ifAbsent: () => [value]);
Run Code Online (Sandbox Code Playgroud)
然后,您可以请求给定的键并获取与该键连接的所有值的列表。
| 归档时间: |
|
| 查看次数: |
7161 次 |
| 最近记录: |