首页 > 其他分享 >Lambda表达式

Lambda表达式

时间:2024-03-13 15:58:24浏览次数:32  
标签:Arrays list List fruit 表达式 Lambda

使用Lambda表达式进行集合遍历

❌ 未使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
for (String fruit : list) {
    System.out.println(fruit);
}

✅ 使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
list.forEach(fruit -> System.out.println(fruit));

使用Lambda表达式进行排序

❌ 未使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
Collections.sort(list, new Comparator() {
    public int compare(String s1, String s2) {
        return s1.compareTo(s2);
    }
});

✅ 使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
Collections.sort(list, (s1, s2) -> s1.compareTo(s2));

使用Lambda表达式进行过滤

❌ 未使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
List filteredList = new ArrayList();
for (String fruit : list) {
    if (fruit.startsWith("a")) {
        filteredList.add(fruit);
    }
}

✅ 使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
List filteredList = list.stream().filter(fruit -> fruit.startsWith("a"))
								.collect(Collectors.toList());

使用Lambda表达式进行映射

❌ 未使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
List lengths = new ArrayList();
for (String fruit : list) {
    lengths.add(fruit.length());
}

✅ 使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
List lengths = list.stream()
                	.map(fruit -> fruit.length())
                	.collect(Collectors.toList());

使用Lambda表达式进行归约

❌ 未使用Lambda表达式:

List list = Arrays.asList(1, 2, 3, 4, 5);
int sum = 0;
for (int i : list) {
	sum += i;
}

✅ 使用Lambda表达式:

List list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream().reduce(0, (a, b) -> a + b);

使用Lambda表达式进行分组

❌ 未使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
Map<Integer, List> grouped = new HashMap<Integer, List>();
for (String fruit : list) {
    int length = fruit.length();
    if (!grouped.containsKey(length)) {
        grouped.put(length, new ArrayList());
    }
    grouped.get(length).add(fruit);
}

✅ 使用Lambda表达式:

List list = Arrays.asList("apple", "banana", "orange");
Map<Integer, List> grouped = list.stream()
				.collect(Collectors.groupingBy(fruit -> fruit.length()));

使用Lambda表达式进行函数式接口的实现

❌ 未使用Lambda表达式:

public interface MyInterface {
    public void doSomething(String input); 
}

MyInterface myObject = new MyInterface() {
	public void doSomething(String input) {
		System.out.println(input);
	}
};

myObject.doSomething("Hello World");

✅ 使用Lambda表达式:

MyInterface myObject = input -> System.out.println(input);
myObject.doSomething("Hello World");

使用Lambda表达式进行线程的创建

❌ 未使用Lambda表达式:

Thread thread = new Thread(new Runnable() {
    public void run() {
    	System.out.println("Thread is running.");
    }
});
thread.start();

✅ 使用Lambda表达式:

Thread thread = new Thread(() -> System.out.println("Thread is running."));
thread.start();

使用Lambda表达式进行Optional的操作

❌ 未使用Lambda表达式:

String str = "Hello World";
if (str != null) {
	System.out.println(str.toUpperCase());
}

✅ 使用Lambda表达式:

Optional str = Optional.ofNullable("Hello World");
str.map(String::toUpperCase)
	.ifPresent(System.out::println);

标签:Arrays,list,List,fruit,表达式,Lambda
From: https://blog.csdn.net/weixin_44989660/article/details/136682778

相关文章

  • lambda表达式
    本文章将简要介绍java中lambda的基本知识和使用一.lambda的构成lambda表达式的语法结构相对简单,主要由以下几个部分组成:lambda关键字: lambda关键字用于标识这是一个lambda表达式,表示即将定义一个匿名函数。参数列表: 参数列表即用括号括起来的形式参数,可以包含零个或多个......
  • 开源.NET 全能 Cron 表达式解析库(支持 Cron 所有特性)
    前言今天大姚给大家分享一个.NET全能Cron表达式解析类库,支持Cron所有特性:TimeCrontab。Cron表达式介绍Cron表达式是一种用于配置定时任务的时间表达式。它由一系列字段组成,每个字段代表任务在不同时间维度的调度规则。Cron表达式常用于各种系统中,如操作系统的定时任务、......
  • 07-Lambda表达式
    泛型泛型(Generics)是JDK1.5版本增加的技术,他可以帮助我们建立类型安全的集合。在使用了泛型的集合中,不必进行强制类型转换。JDK提供了支持泛型的编译器,将运行时的类型检查提前到了编译时执行,使代码可读性和安全性更高。不使用泛型:publicstaticvoidmain(String[]args){......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    1#include<stdio.h>2intmain()3{4printf("o\n");5printf("<H>\n");6printf("II\n");78return0;9}#include<stdio.h>intmain(){printf("oo\n"......
  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    task1点击查看代码#include<stdio.h>intmain(){printf("o\n"); printf("<H>\n"); printf("II\n"); printf("o\n"); printf("<H>\n"); printf("II\n"); system("......
  • MYSQL: 表表达式(CTE)实现递归实例
    环境:MYSQL8.0 + windows10 1、在TEST数据库中创建 表CTE_TEST.CREATETABLE`test`.`cte_test`(test_idINT,test_nameVARCHAR(50),parent_test_idINT,created_byINT,creation_dateTIMESTAMP);例子数据:INSERTINTO`test`.`cte_test`(test_i......
  • 正则表达式
    .匹配除换行符以外的任意字符。^匹配字符串的开头。$匹配字符串的结尾。*匹配前一个字符零次或多次。+匹配前一个字符一次或多次。?匹配前一个字符零次或一次。非贪婪匹配,只要后面的满足就停止{n}匹配前一个字符恰好n次。{n,}匹配前一个字符至少n次。{n,m}......
  • 在v-model中无法使用表达式的解决方法
    当我们想要使用复杂一点逻辑来决定具体使用哪个属性时,就会遇到v-model本身只支持简单的数据属性,并不支持表达式。有两种方法可以满足:1、使用计算属性+getter\setter<divid="demo">姓:<inputtype="text"placeholder="firstName"v-model="firstName"><br>......
  • C语言判断表达式的写法3<keyDown && keyDown<14
    if(3<keyDown&&keyDown<14){//Yourcodehere}可以写成if(3<keyDown<14){//Yourcodehere}吗答案:不能,因为在C语言中,if(3<keyDown&&keyDown<14) 和 if(3<keyDown<14) 是不同的。在C语言中,3<keyDown......
  • 规则七:避免css表达式
    当页面动态变化时,对于各种事件,例如改变大小,滚动和鼠标移动。这些都会发送请求进行求值,这样就导致了求值进行的非常繁琐。如何避免:使用一次性表达式:将值设置成为固定值,去除css表达式使用事件处理器:这样可以避免在无关事件发生时对表达式的求值。  ......