找到 4330 篇文章 关于 Java 8
202 次查看
DoubleToLongFunction 是 java.util.function 包中引入的 Java 8 的内置函数式接口。此函数式接口接受一个双精度值参数并产生一个长整数值结果。DoubleToLongFunction 接口可以用作 lambda 表达式或方法引用的赋值目标。它只包含一个抽象方法:applyAsLong()。语法@FunctionalInterface public interface DoubleToLongFunction { long applyAsLong(double value) }示例import java.util.function.DoubleToLongFunction; public class DoubleToLongFunctionTest { public static void main(String args[]) { double dbl = 30.1212; DoubleToLongFunction castToLong = (dblValue) -> (long) dblValue; // lambda 表达式 System.out.println(castToLong.applyAsLong(dbl)); dbl = 77.9212; DoubleToLongFunction roundToLong = Math::round; ... 阅读更多
253 次查看
DoubleToIntFunction 是在 Java 8 版本中引入的 java.util.function 包中定义的函数式接口。此函数式接口接受一个双精度值参数并产生一个整数值结果。DoubleToIntFunction 接口可以用作 lambda 表达式或方法引用的赋值目标。它只包含一个抽象方法:applyAsInt()。语法@FunctionalInterface interface DoubleToIntFunction { int applyAsInt(double value) }示例import java.util.function.DoubleToIntFunction; public class DoubleToIntFunctionTest { public static void main(String args[]) { DoubleToIntFunction test = doubleVal -> { // lambda 表达式 int intVal = (int) doubleVal; return intVal; }; ... 阅读更多
180 次查看
ToLongBiFunction 是来自 java.util.function 包的内置函数式接口。此函数式接口接受两个引用类型参数作为输入并产生一个长整数值结果。ToLongBiFunction 接口可以用作 lambda 表达式或方法引用的赋值目标,并且只包含一个抽象方法:applyAsLong()。语法@FunctionalInterface interface ToLongBiFunction { long applyAsLong(T t, U u); }示例import java.util.*; import java.util.function.ToLongBiFunction; public class ToLongBiFunctionTest { public static void main(String[] args) { ToLongBiFunction getMobileNum = (map, value) -> { // lambda if(map != null && !map.isEmpty()) { if(map.containsKey(value)) { ... 阅读更多
211 次查看
ToLongFunction 是在 java.util.function 包中定义的函数式接口。此函数式接口接受一个引用类型作为输入并产生一个长整数值结果。ToLongFunction 接口可以用作 lambda 表达式或方法引用的赋值目标。它只包含一个抽象方法:applyAsLong()。语法@FunctionalInterface interface ToLongFunction { long applyAsLong(T value); }示例import java.util.*; import java.util.function.ToLongFunction; public class ToLongFunctionTest { public static void main(String args[]) { List list = new ArrayList(); list.add("11"); list.add("22"); list.add("33"); list.add("44"); list.add("55"); ToLongFunction function = (String item) -> Long.valueOf(item); // ... 阅读更多
218 次查看
ToDoubleBiFunction 是在 java.util.function 包中定义的函数式接口。此函数式接口接受两个参数作为输入并产生一个双精度值结果。ToDoubleBiFunction 接口可以用作 lambda 表达式或方法引用的赋值目标。此接口只包含一个抽象方法:applyAsDouble(),并且不包含任何默认方法或静态方法。语法@FunctionalInterface interface ToDoubleBiFunction { double applyAsDouble(T t, U u); }示例import java.util.function.ToDoubleBiFunction; public class ToDoubleBiFunctionTest { public static void main(String args[]) { ToDoubleBiFunction test = (t, u) -> t / u; // lambda 表达式 System.out.println("The division of t and u is: " + test.applyAsDouble(50, ... 阅读更多
206 次查看
ToIntBiFunction 是来自 java.util.function 包的内置函数式接口。此接口接受两个参数作为输入并产生一个整数值结果。ToIntBiFunction 接口可以用作 lambda 表达式或方法引用的赋值目标。它只包含一个抽象方法:applyAsInt(),并且不包含任何默认方法或静态方法。语法@FunctionalInterface interface ToIntBiFunction { int applyAsInt(T t, U u); }示例import java.util.function.ToIntBiFunction; public class ToIntBiFunctionTest { public static void main(String args[]) { ToIntBiFunction test = (t, u) -> t * u; System.out.println("The multiplication of t and u is: " + test.applyAsInt(10, 7)); System.out.println("The multiplication of t and u is: " ... 阅读更多
939 次查看
Map 接口实现了 Collection 接口,该接口提供了 map 数据结构的功能。Map 不包含任何重复的键,并且每个键都与单个值相关联。我们可以使用与其关联的键来访问和修改值。在以下两个示例中,我们可以借助 lambda 表达式对 Map 按照键和值进行排序。使用键对 Map 进行排序的示例import java.util.*; import java.util.stream.*; public class MapSortUsingKeyTest { public static void main(String args[]) { // 按键对 Map 进行排序 Map map = new HashMap(); ... 阅读更多
167 次查看
LongUnaryOperator 是来自 java.util.function 包的函数式接口。此函数式接口接受一个长整数值操作数并产生一个长整数值结果。LongUnaryOperator 接口可以用作 lambda 表达式和方法引用的赋值目标。它包含一个抽象方法:applyAsLong(),一个静态方法:identity() 和两个默认方法:andThen() 和 compose()。语法@FunctionalInterface public interface LongUnaryOperator long applyAsLong(long operand); }示例import java.util.function.LongUnaryOperator; public class LongUnaryOperatorTest { public static void main(String args[]) { LongUnaryOperator getSquare = longValue -> { // lambda long result = longValue * longValue; System.out.println("Getting square: " + result); ... 阅读更多
712 次查看
Lambda 表达式的封闭作用域定义的变量可以在 Lambda 表达式内访问。Lambda 表达式可以访问封闭类定义的实例变量、静态变量和方法。它还可以访问“this”变量(隐式和显式),该变量可以是封闭类的实例。Lambda 表达式还可以设置实例或静态变量的值。示例接口 SimpleInterface { int func(); } 公共类 SimpleLambdaTest { 静态 int x = 50; 公共静态 void main(String[] args) { SimpleInterface test = () -> x; // 访问静态变量 ... 阅读更多
668 次浏览
方法引用是 Lambda 表达式中的一种方式,用于引用方法而不执行它。在 Lambda 表达式的正文部分,如果它们与函数式接口兼容,我们可以调用另一个方法。我们还可以捕获方法引用中的“this”和“super”关键字。在下面的两个示例中,我们可以使用方法引用在“this”和“super”关键字的帮助下创建一个线程。this 关键字的示例公共类 MethodRefThisTest { 公共 void runBody() { 对于 (int i = 1; i < 10; i++) { System.out.println("Square of " + i + " ... 阅读更多