Lambda表达式是Java 8引入的一种新的编程特性,它允许我们将函数作为参数传递给方法,或者将代码作为数据处理。Lambda表达式可以使代码更简洁、易读。以下是一些Lambda表达式在Java中的实践案例:
假设我们有一个Person类,包含姓名和年龄属性,我们可以使用Lambda表达式对Person对象列表进行排序。
public class Person {
private String name;
private int age;
// 构造方法、getter、setter省略
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class LambdaExample {
public static void main(String[] args) {
List<Person> personList = Arrays.asList(
new Person("张三", 25),
new Person("李四", 20),
new Person("王五", 30)
);
// 使用Lambda表达式对Person对象列表按年龄进行排序
personList.sort(Comparator.comparingInt(Person::getAge));
System.out.println(personList);
}
}
我们可以使用Lambda表达式过滤集合中的元素。例如,我们可以从Person对象列表中筛选出年龄大于等于18的人。
public class LambdaExample {
public static void main(String[] args) {
List<Person> personList = Arrays.asList(
new Person("张三", 25),
new Person("李四", 20),
new Person("王五", 30)
);
// 使用Lambda表达式过滤年龄大于等于18的人
List<Person> adults = personList.stream()
.filter(person -> person.getAge() >= 18)
.collect(Collectors.toList());
System.out.println(adults);
}
}
我们可以创建自定义的函数式接口,并使用Lambda表达式实现它们。例如,我们可以创建一个函数式接口,用于计算两个整数的和。
@FunctionalInterface
public interface SumFunction {
int sum(int a, int b);
}
public class LambdaExample {
public static void main(String[] args) {
// 使用Lambda表达式实现SumFunction接口
SumFunction sumFunction = (a, b) -> a + b;
int result = sumFunction.sum(5, 3);
System.out.println("Sum: " + result);
}
}
在图形用户界面(GUI)编程中,我们可以使用Lambda表达式处理事件。例如,我们可以为按钮添加一个点击事件监听器。
public class LambdaExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Lambda Example");
JButton button = new JButton("Click me");
// 使用Lambda表达式为按钮添加点击事件监听器
button.addActionListener(e -> System.out.println("Button clicked!"));
frame.add(button);
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
这些案例仅仅是Lambda表达式在Java中应用的一部分,实际上Lambda表达式可以应用于许多场景,如并行编程、函数组合等。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。