技术文摘
Java8 中 22 个 lambda 表达式用法的超简单入门示例,不会你就落伍了
Java8 中 22 个 lambda 表达式用法的超简单入门示例,不会你就落伍了
在 Java8 中,lambda 表达式的引入为编程带来了极大的便利和灵活性。接下来,让我们一起通过 22 个超简单的入门示例来深入了解 lambda 表达式的用法。
示例 1:简单的无参数 lambda 表达式
Runnable runnable = () -> System.out.println("Hello, Lambda!");
示例 2:有一个参数的 lambda 表达式
Consumer<String> consumer = (str) -> System.out.println("Received: " + str);
示例 3:多个参数的 lambda 表达式
BiConsumer<String, Integer> biConsumer = (str, num) -> System.out.println(str + " - " + num);
示例 4:lambda 表达式中的返回值
Supplier<String> supplier = () -> "Hello from Supplier!";
示例 5:对集合进行遍历
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(name -> System.out.println(name));
示例 6:过滤集合中的元素
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
.filter(num -> num % 2 == 0)
.forEach(System.out::println);
示例 7:映射操作
List<String> words = Arrays.asList("apple", "banana", "cherry");
words.stream()
.map(word -> word.toUpperCase())
.forEach(System.out::println);
示例 8:归约操作
List<Integer> nums = Arrays.asList(1, 2, 3, 4, 5);
int sum = nums.stream()
.reduce(0, (a, b) -> a + b);
System.out.println("Sum: " + sum);
示例 9:比较器的 lambda 表达式
List<String> fruits = Arrays.asList("apple", "banana", "cherry");
fruits.sort((s1, s2) -> s1.compareTo(s2));
示例 10:方法引用
List<String> names = Arrays.asList("John", "Jane", "Doe");
names.forEach(System.out::println);
示例 11:构造函数引用
Supplier<Person> personSupplier = Person::new;
示例 12:静态方法引用
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.stream()
.map(Math::sqrt)
.forEach(System.out::println);
示例 13:处理异常的 lambda 表达式
Supplier<String> supplier = () -> {
try {
// 可能抛出异常的代码
return "Success";
} catch (Exception e) {
return "Error";
}
};
示例 14:并行流中的 lambda 表达式
List<Integer> largeNumbers = Arrays.asList(100000, 200000, 300000);
largeNumbers.parallelStream()
.mapToInt(num -> num)
.forEach(System.out::println);
示例 15:使用 lambda 表达式实现自定义函数接口
interface CustomFunction {
int operate(int a, int b);
}
CustomFunction customFunction = (a, b) -> a + b;
示例 16:在多线程中使用 lambda 表达式
new Thread(() -> System.out.println("Thread is running")).start();
示例 17:lambda 表达式与 Optional 类结合
Optional<String> optional = Optional.ofNullable("Value");
optional.ifPresent(value -> System.out.println("Present: " + value));
示例 18:lambda 表达式与 Stream 的 flatMap 操作
List<List<String>> nestedLists = Arrays.asList(
Arrays.asList("a", "b"),
Arrays.asList("c", "d")
);
nestedLists.stream()
.flatMap(Collection::stream)
.forEach(System.out::println);
示例 19:lambda 表达式与 Predicate 接口
Predicate<String> predicate = str -> str.length() > 5;
示例 20:lambda 表达式与 Function 接口
Function<String, Integer> function = str -> str.length();
示例 21:使用 lambda 表达式实现策略模式
interface Strategy {
void execute();
}
Strategy strategy = () -> System.out.println("Executing strategy");
示例 22:lambda 表达式与回调函数
interface Callback {
void onComplete();
}
Callback callback = () -> System.out.println("Callback completed");
通过以上 22 个简单的示例,相信您对 Java8 中的 lambda 表达式有了更清晰的认识和理解。赶快将其运用到您的项目中,提升代码的简洁性和可读性吧!
TAGS: Java 编程 技术入门 Lambda 表达式 Java8