【发布时间】:2022-01-24 21:54:56
【问题描述】:
Dart 列表应根据元素对象内的相同整数值按字母顺序排序。如果整数具有相同的值,则这些相关字符串应按 aplhabetical 和升序排列
这是列表。
列表项 = [ People( 10 , 'a' ) , People( 5 , 'c' ), People( 15 , 'b' ), People( 15 , 'a' ), People( 5 , 'k' ), 人(10, 'd') 人(7, 'c')];
预期结果:
列表项 = [ People( 5 , 'c' ) , People( 5 , 'k' ), People( 7 , 'c' ), People( 10 , 'a' ), People( 10 , 'k' ), 人(15, 'a') 人(15, 'd')];
【问题讨论】:
-
People类是否实现了Comparable?如果是这样,请将其发布,List.sort文档说:“如果省略比较,则默认 List 实现使用 Comparable.compare。” -
No 没有实现 Comparable。
-
api.dart.dev/stable/2.15.1/dart-core/Comparable-class.html - 他们说:“具有内在排序的类型使用的接口。compareTo 操作定义了对象的总排序,可用于排序和排序。Comparable接口应该用于类型的自然排序。如果一个类型可以以多种方式排序,并且它们都不是明显的自然排序,那么最好不要使用 Comparable 接口,并提供单独的而是比较器。”
-
您已经在stackoverflow.com/q/70458967 中提出了这个问题,我将其标记为Sort a list of objects in Flutter (Dart) by property value 的重复项。如果你想问一个好问题,你应该解释为什么这些答案还不够(注意one of the answers(披露:我的)专门解决了如何按多个属性排序)。
标签: flutter sorting dart alphabetical