按对象属性排序对象的ArrayList,可以使用Java中的Collections.sort()方法,结合自定义的Comparator来实现。
首先,需要定义一个类,该类包含要排序的属性,例如:
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
然后,可以创建一个ArrayList,并添加Person对象:
List<Person> personList = new ArrayList<>();
personList.add(new Person("张三", 25));
personList.add(new Person("李四", 30));
personList.add(new Person("王五", 20));
接下来,可以使用Collections.sort()方法,结合自定义的Comparator来实现按照年龄排序:
Collections.sort(personList, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
return o1.getAge() - o2.getAge();
}
});
排序后的ArrayList将按照年龄从小到大排序,即:王五, 张三, 李四。
如果要按照名字排序,可以将Comparator的compare()方法中的比较逻辑修改为:
@Override
public int compare(Person o1, Person o2) {
return o1.getName().compareTo(o2.getName());
}
排序后的ArrayList将按照名字的字典序从小到大排序。
领取专属 10元无门槛券
手把手带您无忧上云