迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 中的箭头运算符 ->

作者:迹忆客 最近更新:2023/12/17 浏览次数:

本教程介绍了箭头运算符 (->) 在 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<Product> list = new ArrayList<Product>();
    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<Product> 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...

上一篇:Java 中的 >> 运算符

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 中的 >> 运算符

发布时间:2023/12/17 浏览次数:187 分类:Java

本文你将了解 Java 中的 >> 运算符。本指南将介绍 Java 中的 >> 运算符。要理解这个概念,你需要熟悉一些较低级别的计算概念。例如,位、字节等等。让我们深入了解一下。

Java Not InstanceOf

发布时间:2023/12/17 浏览次数:156 分类:Java

本教程演示如何在 Java 中否定 instanceof 关键字。InstanceOf 关键字检查引用变量是否包含给定的对象引用类型。它返回布尔类型,所以我们也可以否定它们。

Java 中的类字段和实例字段

发布时间:2023/11/28 浏览次数:98 分类:Java

在本文中,你将学习一些 Java 术语,它们是局部变量、输入参数、类字段和实例字段。我们还将讨论 Java 中实例字段的一些属性。

Java 中的类文件编辑器

发布时间:2023/11/28 浏览次数:194 分类:Java

本文展示了如何使用 Java 类文件来编辑类文件。在本文中,我们将讨论 Java 类文件编辑器,这是一个用 Java 创建的工具,用于编辑 Java 编译的类。我们可以在创建 Java 类后对其进行反编译并查看

Java 中的_JAVA_OPTIONS 环境变量

发布时间:2023/11/28 浏览次数:169 分类:Java

在本文中,我们将讨论 Java 选项和 _JAVA_OPTIONS 环境变量,它的后续 JAVA_TOOL_OPTIONS 和 JDK_JAVA_OPTIONS。

如何在 Java 中清除控制台

发布时间:2023/11/28 浏览次数:135 分类:Java

它展示了在 Java 中清理控制台屏幕的两种方法。在本教程中,我们将看一下在 Java 中清理控制台屏幕的两种方法。我们将通过实例来学习如何在运行时执行 Java 清屏命令。

如何在 Java 中从控制台获取输入

发布时间:2023/11/28 浏览次数:164 分类:Java

本教程展示了 Scanner 类中包含的读取控制台输入的各种功能。在本教程中,我们将查看 Java 中的 Scanner 类,并学习如何使用该类从控制台读取输入。Scanner 类来自于 Java 包 java.util.Scanner。

Java 中的 console.log

发布时间:2023/11/28 浏览次数:181 分类:Java

本文介绍 Java 中的 console.log。本教程介绍 Java 中的 console.log() 函数以及如何在 Java 中将日志显示到控制台。console.log() 是 JavaScript 的一个函数,用于向浏览器控制台显示日志消息。

Java 更改日期格式

发布时间:2023/11/28 浏览次数:166 分类:Java

本文介绍如何在 Java 中更改日期格式 有多种选项可用于将日期字符串转换为日期格式。下面提到的方法可以带来所需的结果。让我们从下面的代码块中了解各种方式。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便