Lambda表达式3:Stream的映射

1、基础介绍

map-接收Lambda,将元素转换成其他形态或提取信息。接收一个函数作为参数,该函数会被应用到每隔元素上,并将其映射成一个新的元素;

List<Student> list = Arrays.asList(
			new Student(1,"张三",60),
			new Student(2,"李四",70),
			new Student(3,"王五",80),
			new Student(4,"赵六",90),
			new Student(4,"赵六",90),
			new Student(4,"赵六",90),
			new Student(5,"田七",100)); 
@Test
public void test1(){
	List<String> list = Arrays.asList("aaa","bbb","ccc");
	list.stream().map((str) -> str.toUpperCase())
	.forEach(System.out::println);
	
	this.list.stream().map(Student::getName)
	.forEach(System.out::println);
}

在这里插入图片描述

flatMap-接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流

@Test
public void test2(){
	List<String> list = Arrays.asList("aaa","bbb","ccc");
	
	Stream<Stream<Character>> stream = list.stream()
			.map(Test1::filterchar);// {{a,a,a},{b,b,b},{c,c,c}}
	// 由于流中包含流,所有得要双重循环
	stream.forEach((sm) -> sm.forEach(System.out::println));

	
	Stream<Character> stream2 = list.stream()
			.flatMap(Test1::filterchar);// {a,a,a,b,b,b,c,c,c}
	stream2.forEach(System.out::println);
}


public static Stream<Character> filterchar(String str){
	List<Character> list = new ArrayList<Character>();
	for (Character ch : str.toCharArray()) {
		list.add(ch);
	}
	return list.stream();
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值