我想对列表进行两次排序。
示例列表(以下是包含型号的示例列表):
[Model("A", 5), Model("C", 3), Model("B", 7) Model("F", 5), Model("D", 5)]
我想要的是先按字母顺序排序,然后按数字顺序排序。如果我这样做,我会得到下面的结果:
[Model("C", 3), Model("A", 5), Model("D", 5) Model("F", 5), Model("B", 7)]
其他:
按字母顺序排序:
[Model("A", 5), Model("B", 7), Model("C", 3) Model("D", 5), Model("F", 5)]
按数字排序:
[Model("C", 3), Model("A", 5), Model("F", 5) Model("D", 5), Model("B", 7)]
我的代码:
Stream<List<T>> function<T>({
…
int Function(T lhs, T rhs) sort,
}) {
…
List<T> result = …;
result.sort(sort);
}
Stream<List<Model>> stream() {
return function(
…
sort: (a, b) => a.alphabet.toLowerCase().compareTo(b.alphabetc.toLowerCase())
);
}
如果您需要更多信息,请随时发表评论。
如何对一个列表进行两次排序?我将感激任何帮助。提前感谢你!
2条答案
按热度按时间qnyhuwrf1#
尝试以下代码,首先,在
Model
类上实现Comparable
类,并像这样实现compareTo
方法:那么,举个例子
尝试对它进行排序会得到你想要的结果:
shstlldc2#
你可以这样叫它两次:
在您情况下:
结果: