📅  最后修改于: 2023-12-03 15:39:22.950000             🧑  作者: Mango
Lambda表达式是Java 8中最强大和最有用的功能之一,它允许我们在代码中方便地传递和使用函数。
当你需要对一个能够接受另外一个函数作为参数的高阶函数进行排序时,有时候你需要使用已排序的Lambda表达式。
已排序的Lambda表达式绑定了一个Comparator接口,可以快速实现比较操作。以下是如何使用已排序的Lambda表达式来实现比较:
List<String> names = Arrays.asList("John", "Alex", "Steve", "Bob");
// 使用已排序的Lambda表达式
Collections.sort(names, (a, b) -> a.compareTo(b));
System.out.println(names); // 输出 [Alex, Bob, John, Steve]
在这个示例中,我们使用Lambda表达式 (a, b) -> a.compareTo(b)
来比较字符串的顺序。我们将它作为第二个参数传递给Collections.sort()方法,这个方法可以对集合中的元素进行排序。
另一个例子是对使用对象的比较:
class Person {
private String name;
private int age;
// 省略了构造方法和其他代码
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
List<Person> persons = Arrays.asList(
new Person("Alex", 25),
new Person("Bob", 30),
new Person("John", 20),
new Person("Steve", 35)
);
// 使用已排序的Lambda表达式
Collections.sort(persons, (a, b) -> a.getName().compareTo(b.getName()));
System.out.println(persons); // 输出 [Person{name='Alex', age=25}, Person{name='Bob', age=30}, Person{name='John', age=20}, Person{name='Steve', age=35}]
在这个示例中,我们使用 (a, b) -> a.getName().compareTo(b.getName())
来比较对象的序列。我们可以根据Person对象的名称进行排序。
总之,已排序的Lambda表达式可以帮助我们更方便地对高阶函数和对象进行比较和排序。它是使用Lambda表达式的非常强大和有用的方式之一。