可以使用Java中的Comparator和Lambda表达式来实现。
首先,我们定义一个对象类,该类包括需要排序的3个属性,例如:
class Person {
String name;
int age;
double salary;
// 构造函数
public Person(String name, int age, double salary){
this.name = name;
this.age = age;
this.salary = salary;
}
// toString()方法,便于输出测试结果
public String toString(){
return "Person(name="+name+", age="+age+", salary="+salary+")";
}
}
然后,我们可以使用Comparator接口,定义一个匿名类实现compare方法,并使用Lambda表达式简化代码。在此例中,我们将根据以下顺序对Person对象进行排序:按姓名升序、按年龄升序、按薪资降序。
List persons = new ArrayList<>();
persons.add(new Person("张三", 25, 5000));
persons.add(new Person("李四", 18, 6000));
persons.add(new Person("王五", 22, 4000));
persons.add(new Person("赵六", 28, 8000));
// 使用Comparator和Lambda表达式进行排序
persons.sort(Comparator
.comparing(Person::name)
.thenComparing(Person::age)
.thenComparing(Person::salary)
.reversed());
// 输出排序结果
for(Person person : persons){
System.out.println(person);
}
输出结果:
Person(name=李四, age=18, salary=6000.0)
Person(name=张三, age=25, salary=5000.0)
Person(name=王五, age=22, salary=4000.0)
Person(name=赵六, age=28, salary=8000.0)