Spark开发必会之:Java8新特性Lambda表达式

本文深入探讨了在Spark开发中如何有效利用Java8的Lambda表达式,阐述了Lambda的基本语法、函数式接口以及它如何提升Spark作业的编写效率和可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package lambda表达式;

import java.util.Arrays;
import java.util.List;

import org.junit.Test;

import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable;
/**
 * Lambda的常用六种写法
 * 		() -> System.out.println("Hello World");  			//没有参数
 * 		event -> System.out.println("点击了按钮");	  			//有一个参数
 * 		(e1,e2) -> System.out.println(e1+e2);	  			//有多个参数
 * 		(Long e1,Long e2) -> System.out.println(e1+e2);	  	//有多个参数,并指定类型
 * 		() -> {System.out.println("点击了按钮");	  
 * 			   System.out.println("移动了鼠标");	} 			//有多段代码
 * 		add = (x,y) -> x+y;						  			//两数相加的add函数
 * 
 * @author 
 *
 */
public class LambdaTest {
	/**
	 * l集合遍历
	 */
	@Test
	public void iteratorTest() {
		List<Integer> list=Arrays.asList(1,2,3,4,5);
		//原来的方式
		for(Integer x:list) {
			System.out.println(x*x);
		}
		System.out.println("*************************");
		//lambda的方式
		list.forEach(x->System.out.println(x*x));
		System.out.println("*************************");
		/*
		 * 直接输出集合元素
		 * 		语法:
		 * 			类名::方法名
		 */
		list.forEach(System.out::println);
	}
	/**
	 * 替代匿名内部类
	 */
	@Test
	public void AnonInnerClassTest() {
		new Thread(()->System.out.println("lambda表达式代替匿名内部类")).start();
	}
	/**
	 * 实现map/reduce及filter等操作
	 * 
	 * stream()可以简单地理解成一个iterator,只不过iterator是逐个遍历执行逻辑
	 * 		而stream()是你告诉它要做啥即可,这个是告诉stream()要将里面的元素求平方
	 * 
	 */
	@Test
	public void MapReduceFilterTest() {
		List<Integer> list=Arrays.asList(1,2,3,4,5);
		/*
		 * 先过滤出3,4,5   平方后得9,16,25    相加得50
		 */
		Integer result = list.stream().filter(x->x>2).map(x->x*x).reduce((a,b)->a+b).get();	
		System.out.println(result);
	}
	
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二百四十九先森

你的打赏是我努力的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值