java lambda stream 例子

前面介绍了lambda还有stream,现在给一些例子加强lambda与stream的理解。

例子1

小写字母转大写字母

		List<String> output = wordList.
				stream().
				map(String::toUpperCase).	
				collect(Collectors.toList());


例子2
过滤掉字符串长度为单数的字符串

		List<String> output = wordList.
				stream().
				filter(w -> (w.length() & 1) == 0).	
				collect(Collectors.toList());		


例子3

累计输入流里有多少行

			long count = bufferedReader.
				lines().
				count();		

例子4

求出输入流中长度最长的字符串长度

			int longest = bufferedReader.
					lines().
					mapToInt(String::length).
					max().	//求出输入流中长度最长的字符串长度
					getAsInt();

注意这里的mapToInt() 与 max() 都是中间方法返回的类型分别是IntStream 与 OptionalInt,所以需要 getAsInt() 来做终点方法。

例子5

读取BufferedReader的数据存入List中

			List<String> output = bufferedReader.
					lines().
					flatMap(line -> Stream.of(line)).
					filter(word -> word.length() > 0).
					collect(Collectors.toList());

例子6

读取数据同时对数据做其他处理

			List<String> output = bufferedReader.
					lines().
					flatMap(line -> Stream.of(line.split("/r/n"))).
					filter(word -> word.length() > 0).
					map(String::toLowerCase).
					distinct().
					sorted().
					collect(Collectors.toList());

这里的处理有 split() 对字符串就行分割, distinct()  去重, sorted() 排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值