找到 4330 篇文章 关于 Java 8
1K+ 次浏览
Java 8 在 Comparator 接口中引入了更改,允许我们比较两个对象。这些更改帮助我们更轻松地创建比较器。添加的第一个重要方法是 comparing() 方法。此方法接收 Function 作为参数,该参数确定要比较的值并创建 Comparator。另一个重要方法是 thenComparing() 方法。此方法可用于组合 Comparator。在下面的示例中,我们可以使用 comparing() 方法按名字对列表进行排序,然后使用 Comparator 接口的 thenComparing() 方法按姓氏排序。示例import java.util.*; public class MethodReferenceSortTest { public static void main(String[] ... 阅读更多
595 次浏览
ToIntFunction 是在 java.util.function 包中定义的内置函数式接口。此函数式接口期望一个参数作为输入并产生一个 int 值的结果。它可以用作 lambda 表达式或方法引用的赋值目标。ToIntFunction 接口只包含一个方法,applyAsInt()。此方法对给定参数执行操作并返回 int 值的结果。语法@FunctionalInterface public interface ToIntFunction { int applyAsInt(T value); }在下面的示例中,我们可以使用 lambda 表达式和方法引用来实现 ToIntFunction。示例import java.util.function.ToIntFunction; import java.time.LocalDate; public class ToIntFunctionInterfaceTest { public static void main(String[] args) { ToIntFunction lambdaObj = value -> ... 阅读更多
260 次浏览
ObjIntConsumer 接口是一种函数式接口,在 java.util.function 包中定义。此函数式接口期望一个对象值和 int 值的参数作为输入,并且不产生任何输出。它只包含一个函数方法,accept(Object, int)。语法@FunctionalInterface public interface ObjIntConsumer { void accept(T t, int value) }在下面的示例中,我们可以使用 lambda 表达式来实现 ObjIntConsumer 接口。示例-1import java.util.function.*; public class ObjIntConsumerInterfaceTest1 { public static void main(String args[]) { ObjIntConsumer objIntConsumberObj = (t, value) -> { // lambda 表达式 if(t.length() > value) { ... 阅读更多
2K+ 次浏览
Map 是一个集合对象,它将键映射到 Java 中的值。数据可以存储在键/值对中,每个键都是唯一的。这些键/值对也称为映射条目。在下面的示例中,我们可以使用 lambda 表达式填充 Map。我们将 Character 和 Runnable 参数传递给 Map 对象,并在 Map 类的 put() 方法中将 lambda 表达式作为第二个参数传递。我们需要传递命令行参数,无论用户是否输入 'h' 表示帮助和 'q' 表示退出,使用 Scanner 类。示例import java.util.*; public class PopulateUsingMapLambdaTest { public static void main(String[] args) { Map map = new ... 阅读更多
3K+ 次浏览
String 是一个对象,表示 Java 中的字符序列并且是不可变的。我们可以使用 String 类的 charAt() 方法反转用户输入的字符串,以从字符串中提取字符并将它们按相反的顺序追加以反转输入的字符串。在下面的示例中,我们需要使用 lambda 表达式和 Scanner 类的帮助来反转字符串。示例import java.util.Scanner; interface StringFunc { String func(String n); } public class StringFuncLambdaTest { public static void main(String args[]) { Scanner sc = new Scanner(System.in); StringFunc reverse = (str) -> { // ... 阅读更多
686 次浏览
序列化是一个将对象的状态写入字节流的过程,以便我们可以通过网络传输它。如果 lambda 表达式的目标类型及其捕获的参数已序列化,则我们可以序列化 lambda 表达式。但是,与内部类一样,强烈建议不要序列化 lambda 表达式。在下面的示例中,我们可以使用 Function 接口序列化和反序列化 lambda 函数。示例import java.io.*; import java.util.function.Function; interface MyInterface { void hello(String name); } class MyImpl implements MyInterface { public void hello(String name) { System.out.println("Hello " + name); } } public class SerializeDeSerializeLambdaTest { public static void main(String[] args) ... 阅读更多
790 次浏览
IntSupplier 是在“java.util.function”包中定义的函数式接口。此接口表示一个不带参数的操作,并返回 int 类型的结果。IntSupplier 接口只有一个方法,getAsInt(),并返回一个结果。此函数式接口可以用作 lambda 表达式或方法引用的赋值目标。语法@FunctionalInterface public interface IntSupplier { int getAsInt(); }示例import java.util.function.IntSupplier; public class IntSupplierTest { public static void main(String[] args) { IntSupplier intSupplier1 = () -> Integer.MAX_VALUE; // lamba 表达式 System.out.println("Integer 的最大值为:" + intSupplier1.getAsInt()); IntSupplier intSupplier2 = () -> ... 阅读更多
5K+ 次浏览
IntStream 接口扩展了 Java 8 中的 BaseStream 接口。它是原始 int 值元素的序列,以及用于操作 int 值的专用流。我们还可以使用 IntStream 接口在 lambda 表达式和方法引用中迭代集合的元素。语法public interface IntStream extends BaseStream示例import java.util.stream.IntStream; public class StringToIntegerStreamTest { public static void main(String[] args) { String str = "Tutorials Point"; IntStream stream = str.chars(); stream.forEach(element -> System.out.println(((char)element))); // 使用 lambda 表达式 } }输出T u t o r i a l s P o i n t示例import java.util.*; ... 阅读更多
2K+ 次浏览
BooleanSupplier 是一个在 "java.util.function" 包中定义的功能接口。此接口可以用作 lambda 表达式或方法引用的赋值目标。BooleanSupplier 接口只有一个方法 getAsBoolean(),并返回一个布尔结果,true 或 false。语法@FunctionalInterface public interface BooleanSupplier { boolean getBoolean(); }示例import java.util.function.BooleanSupplier; public class BooleanSupplierLambdaTest { public static void main(String[] args) { BooleanSupplier Obj1 = () -> true; BooleanSupplier Obj2 = () -> 5 < 50; // lambda 表达式 BooleanSupplier Obj3 = () -> "tutorialspoint.com".equals("tutorix.com"); System.out.println("Result of Obj1: " + Obj1.getAsBoolean()); ... 阅读更多
663 次浏览
FileFilter 是来自 "java.io" 包的功能接口。它可以用作 lambda 表达式或方法引用的赋值目标。FileFilter 接口的实例传递给 File 类的 listFiles() 方法。FileFilter 接口有一个抽象方法 accept(),它测试指定的抽象路径名是否包含在路径名列表中。语法@FunctionalInterface public interface FileFilterExampleimport java.io.File; import java.io.FileFilter; public class FileFilterTest { public static void main(String[] args) { File dir = new File("C:/Program Files/Java/jdk1.8.0_211"); File[] subDir = dir.listFiles((file) -> { // lambda 表达式 ... 阅读更多