Java 中的箭头运算符

您所在的位置:网站首页 java中方法的作用是 Java 中的箭头运算符

Java 中的箭头运算符

2024-04-20 08:10| 来源: 网络整理| 查看: 265

Java 中箭头运算符的使用 Java 集合中的箭头运算符 Java 线程中的箭头运算符

本教程介绍了箭头运算符 (->) 在 Java 中的作用,并列出了一些示例代码来理解该主题。

在 Java 8 中,增加了一个新特性 lambda 表达式,同时在 Java 中出现了箭头运算符,用于形成 lambda 表达式。它将参数与表达式主体分开。

(parameters) -> { statements; } // Lambda expression having arrow

Lambda 表达式是在 Java 8 中引入的,可以用来代替 Java 中的匿名类,使代码更加简洁和可读。

下面是我们如何在 Java 8 之前的 Java 中创建匿名类的示例。

Runnable r = new Runnable() { @Override public void run() { System.out.print("Run method"); } };

这就是我们如何在 Java 8 中使用 lambda 表达式来实现上述任务。

Runnable r = () -> System.out.print("Run method");

让我们从一些示例开始,以了解 lambda 和箭头运算符的使用。

Java 中箭头运算符的使用

在此示例中,我们使用箭头运算符创建了一个 lambda 表达式,该表达式实现了 Drawable 接口的 draw() 方法。请参考下面的示例。

interface Drawable { public void draw(); } public class Main { public static void main(String[] args) { int width = 20; // arrow operator Drawable d2 = () -> { System.out.println("Drawing width: " + width); }; d2.draw(); } }

输出:

Drawing width: 20

由于 lambda 表达式是使用函数式方法创建简洁代码的一种超级方式,因此我们可以在 Java 代码中以多种方式使用它。让我们看一些我们可以应用它的例子。

Java 集合中的箭头运算符

在此示例中,我们使用 lambda 表达式过滤 ArrayList 数据。我们使用了流 API 和 filter() 方法来获得所需的结果。你会注意到,使用 lambda 创建代码比使用非 lambda 代码更容易。请参考下面的示例。

package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; class Product { int id; String name; float price; public Product(int id, String name, float price) { this.id = id; this.name = name; this.price = price; } } public class Main { public static void main(String[] args) { List list = new ArrayList(); list.add(new Product(1, "Samsung S5", 17000)); list.add(new Product(3, "Iphone 12", 100500)); list.add(new Product(2, "Sony Xperia", 25000)); // using arrow to filter data Stream filtered_data = list.stream().filter(p -> p.price > 17000); filtered_data.forEach(product -> System.out.println(product.name + ": " + product.price)); } }

输出:

Iphone 12: 100500.0 Sony Xperia: 25000.0 Java 线程中的箭头运算符

这是 lambda 表达式的另一种用法,我们用它来实现可运行接口的 run() 方法。由于 Runnable 是单个方法接口,因此很容易使用 lambda 表达式。请参考下面的示例。

package javaexample; import java.util.ArrayList; import java.util.List; import java.util.stream.Stream; public class Main { public static void main(String[] args) { // using arrow Runnable r = () -> { System.out.println("Thread is running..."); }; Thread t2 = new Thread(r); t2.start(); } }

输出:

Thread is running...


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3