假设我有一个数组列表 MyArrayList<MYObject>
myObject 类看起来像:
public class myObject
{
String name;
Int age;
String : city;
}
我的虚拟数据是这样的:
name : martin , age : 20 , city : NY
name : felix , age : 19 , city : LA
name : brian , age : 21 , city : NY
name : brian , age : 19 , city : NY
现在我想按此顺序对 myArraylist(其中包含上述数据)进行排序 -
name : felix , lastname : 19 , city : LA
name : brian , lastname : 21 , city : NY
name : martin , lastname : 20 , city : NY
name : brian , lastname : 19 , city : NY
如您所见,以上数据以两种方式排序 - 首先按城市,然后再按年龄,所以这就是我想做的,我想排序arrayList 按顺序排列然后我想通过保持第一个顺序按另一个顺序排序
谁知道我该怎么做??届时请告诉我
如果我的问题不够清楚,让我知道我会解决
最佳答案
您可以创建一个比较器,首先按城市进行比较,然后按年龄进行比较。像这样:
Comparator<MyObject> comparator = new Comparator<MyObject>(){
@Override
public int compare(final MyObject o1, final MyObject o2){
if(!o1.getCity().equals(o2.getCity())){
return o1.getCity().compareTo(o2.getCity());
}else{
return o1.getAge().compareTo(o2.getAge());
}
}
};
Collections.sort(myArrayList,comparator);
编辑:
我使用了 Integer 类的“compareTo”方法,您不能在 int
原始类型上调用它。如果您使用 int
作为年龄,您可以只写一个 if 语句来进行比较。
关于java - 使用多个条件对 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402963/