我有一个要整理的dart地图列表。
我使用的列表:
List<myModel> myList;
(内部有地图):
(我创建了一个名为“ myModel”的模型,因此,如果我想获取视图,则可以使用:myList [index] .views来获取地图的视图。)
我尝试了以下代码:
setState(() {
filteredList = SplayTreeMap.from(
myList,
(a, b) => int.parse(myList[a].views)
.compareTo(int.parse(myList[b].views)));
});
(我想按从高到低的顺序对视图进行排序)。
但是我得到这个错误:
error: A value of type 'SplayTreeMap' can't be assigned to a variable of type 'List<myModel>'.
我在做什么错了?
谢谢!
编辑:
我以此方式“查询”我的列表。
filteredList = myList
.where((snapshot) => snapshot.views > 0)
.toList();
这有效...
是否有可能进行这种排序?
答案 0 :(得分:1)
您不能将try (FileOutputStream out = new FileOutputStream(filename)) { //where filename is your path location file
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
} catch (IOException e) {
e.printStackTrace();
}
传递给List
。
请参见documentation:
SplayTreeMap.from(...)
您需要使用SplayTreeMap.from(Map other, [int compare(K key1 K key2), bool isValidKey(dynamic potentialKey)])
或其他方式使用Map
(documentation):
SplayTreeMap.fromIterable(...)
您可以通过以下方式实现:
SplayTreeMap.fromIterable(Iterable iterable, {K key(dynamic element), V value(dynamic element), int compare(K key1 K key2), bool isValidKey(dynamic potentialKey)})
以上是示例,请根据需要进行调整。
编辑2:
进行修改后,您可以执行以下操作:
final filteredList =
SplayTreeMap.fromIterable(
myList,
key: (m) => m,
value: (m) => m.views,
compare: (a, b) =>
int.parse(a.views).compareTo(int.parse(b.views))
);