早上好!
我正在尝试按两个字段比较列表,但结果不起作用,您能帮我吗?
我有一个示例列表:
Name - MesesDuracao - Buy
A - 1 - 10
A - 2 - 5
B - 1 - 8
我希望订购看起来像这样:
A-1-10
B-1-8
A-2-5
我正在尝试这样:
Collections.sort (testImportados, new Comparator <BeanRelEstatisticaMateriaPrima> () {
@Override
public int compare (BeanRelEstatisticaMateriaPrima p1, BeanRelEstatisticaMateriaPrima p2)
{
int comparison = p1.getMesesduration (). compareTo (p2.getMesesduration ());
return comparison == 0? p1.getQtyBuy (). compareTo (p2.getQtyBuy ()): comparison;
}
});
但是,它仅按“ getMesesduration()”进行排序,而不按购买数量进行排序。
有什么建议吗?
谢谢
最佳答案
Collections.sort(
testImportados,
Comparator.comparing(BeanRelEstatisticaMateriaPrima::getMesesduration)
.thenComparing(BeanRelEstatisticaMateriaPrima::getQtyBuy));
如果已经使用了Java-8,应该是提供正确的
Comparator
的最简单方法。关于java - 如何对具有两个对象字段的列表进行排序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52679303/