У меня есть Map<int, String>
, где я хочу вернуть список строковых значений, но отсортированных в порядке возрастания / убывания ключей int. Это было бы легко, если бы я возвращал те же итерации, которые я также хотел бы отсортировать, например, возвращая список map.keys
или map.values
, но я не могу придумать способ сделать это, кроме создания списка вручнуюпосле итерации по всей карте с foreach()
и вставкой значений в индекс из ключа карты, например, ниже, а затем вложения еще одного foreach()
в этот список, чтобы избавиться от любых нулевых значений.
Map<int, String> charMap = {2:'b', 1:'a', 4:'d'};
List<String> tempList = [];
List<String> charList = [];
charMap.forEach((key, value) => tempList.insert(key, value));
//tempList == ['a', 'b', '', 'd'];
charList = tempList..where((e) => e != null);
//charList == ['a', 'b', 'd'];
Пожалуйста, скажите мне, что есть лучший, более эффективный способ? Любая помощь очень ценится!