java Android通过多个字段比较自定义对象(不同的对象/基本类型)
如何通过字符串字段和int字段比较自定义对象
例如:
public class person implements Comparable<Person> {
String name;
int age;
@Override
public int compareTo(@NonNull Person another) {
return name.compareToIgnoreCase(another.name);
}
}
正如您所期望的,这很好地工作,并按名称升序对person对象进行排序
我的问题是: 我还想按年龄对Person对象列表进行排序
排序后,列表应如下所示:
name = a, age = 18
name = b, age = 18
name = c, age = 18
name = a, age = 20
name = b, age = 20
name = c, age = 20
...and so on...
# 1 楼答案
首先,检查您的主要属性。如果这些属性相等,请检查辅助属性:
对于1.7版之前的Java版本–手动方式:
# 2 楼答案
您可以重写compareTo方法,这样,如果两个对象的名称相等,则可以与年龄进行比较(反之亦然,具体取决于您希望首先对其排序的对象)