как конвертировать коллекцию Set в коллекцию Map
Как конвертировать коллекцию Set в коллекцию Map? В данном примере я конвертировал Set в List, а затем в Map. Но может есть более элегантный способ?
main.dart
void main() {
Set ara1 = {'H', 'e', 'l', 'o'};
Map ara2 = ara1.toList().asMap();
for(var i in ara2.entries) {
print('${i.key} : ${i.value}');
}
print('');
ara2.forEach((k, v) {
print('$k : $v');
});
print('\n${ara2.runtimeType}');
}
ответ
0 : H
1 : e
2 : l
3 : o
0 : H
1 : e
2 : l
3 : o
ListMapView<dynamic>
Ответы (1 шт):
Автор решения: MiT
→ Ссылка
Важно понимать что элементы Set'а могут быть как неупорядоченными, так и упорядоченными. Также во втором примере показал как будет более правильнее чем у вас есть сейчас.
void main() {
Set<String> ara1 = <String>{'H', 'e', 'l', 'o'};
// 1
Map<int, String> ara2 = <int, String>{
for (int i = 0; i < ara1.length; i++) i: ara1.elementAt(i)
};
ara2.forEach((k, v) {
print('$k : $v');
});
print('');
// 2
List<String> ara1Temp = ara1.toList();
Map<int, String> ara3 = <int, String>{
for (int i = 0; i < ara1Temp.length; i++) i: ara1Temp[i]
};
ara3.forEach((k, v) {
print('$k : $v');
});
}