Dart中具有重复关键点的地图实现
我想要一张有重复钥匙的地图。Dart或实用程序库中是否有具有此功能的地图 我使用以下方法获取项目计数:Dart中具有重复关键点的地图实现,dart,Dart,我想要一张有重复钥匙的地图。Dart或实用程序库中是否有具有此功能的地图 我使用以下方法获取项目计数: myList.forEach( (element) { if (!myMap.containsKey(element)) { myMap[element] = 1; } else { myMap[element] += 1; } }, ); 然后将键/值转换为列表:需要切换
myList.forEach(
(element) {
if (!myMap.containsKey(element)) {
myMap[element] = 1;
} else {
myMap[element] += 1;
}
},
);
然后将键/值转换为列表:需要切换键/值
final keys = myMap.keys.toList();
final itemSpit = keys.map((e) => e.toString().split('§º')).toList();
final values = myMap.values.toList();
把它放在地图上
final map = Map();
for (var i = 0; i < values.length; i++) {
map[values[i]] = itemSpit[i];
}
如果存在重复的值,第一种方法将增加值计数。所以我有这个。。。{面包白色大:3,玉米黄色小:5..等等..}
然后我必须拆分字符串,并像这样输出
5 bread white large
3 corn yellow small
您可以创建如下示例所示的地图,而不是定义允许复制关键点的地图:
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]);
然后,您可以请求一个给定的键,并获得连接到此键的所有值的列表。您可以创建一个类似以下示例的映射,而不是定义允许重复键的映射:
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]);
然后,您可以请求一个给定的键,并获得连接到此键的所有值的列表。提供了一个包含和实现的类。提供了一个包含和实现的类。您可以直接从第一个映射创建颤振小部件吗 var widgets=[对于myMap.entries MyWidget中的var e 计数:e.value, 字符串:[…e.key.split§º]];
构建中间映射似乎是造成问题的原因。能否直接从第一个映射创建颤振小部件 var widgets=[对于myMap.entries MyWidget中的var e 计数:e.value, 字符串:[…e.key.split§º]];
构建中间映射似乎是造成问题的原因。多次请求密钥时应返回什么值?我只想迭代映射。。。我把一个计数存储为一个键,我想如果你展示一个你想在Dart中表示的数据结构的例子,以及你想如何迭代它,会更容易一些。我在其他语言中见过它。我只是想知道如何在达特做到这一点我很抱歉,但我不知道你试图实现什么。为什么需要切换键/值?当多次请求一个键时,应该返回什么值?我只想迭代映射。。。我把一个计数存储为一个键,我想如果你展示一个你想在Dart中表示的数据结构的例子,以及你想如何迭代它,会更容易一些。我在其他语言中见过它。我只是想知道如何在达特做到这一点我很抱歉,但我不知道你试图实现什么。为什么需要切换键/值?谢谢,看起来不错。如果可以的话,我明天会把它标记为正确的。现在太累了!谢谢,看起来不错。如果它能用的话,我明天会把它改好的。现在太累了!