我有一个这样的对象:
class User {
String row;
String tipo_ing;
String name;
}
我使用此代码创建不同的顺序: 按tipo_ing排序
Collections.sort(Ingred, new Comparator<User>(){
public int compare(User emp1, User emp2) {
return emp1.getTipoIng().compareToIgnoreCase(emp2.getTipoIng());
}
});
通过tipo_ing创建第一个订单后可以,按名称创建“子订单”吗?
答案 0 :(得分:1)
如果您的意思是子订单:
当Users
相等时,按
name
排序tipo_ing
然后答案是是。
由于Java使用Mergesort来排序Object
的集合,这是一个stable排序算法,您可以这样做:
Collections.sort(users, BY_NAME);
Collections.sort(users, BY_TIPO_ING);
达到以下顺序:
tipo_ing name
X Alice
X Bob
Y Eve
Y Mallaroy
答案 1 :(得分:0)
在compare
方法中,只需检查两个typo_ing
是否相同。如果是,请在name
上进行比较:
public int compare(User emp1, User emp2) {
int diff = emp1.getTipoIng().compareToIgnoreCase(emp2.getTipoIng());
if (diff == 0) {
return emp1.getName().compareToIgnoreCase(emp2.getName());
}
return diff;
}