Java8的Stream流(2)

接着上一篇接着写

如下数据:

List<String> list = new ArrayList<>();
list.add("10");
list.add("20");
list.add("30");
list.add("40");
list.add("50");
  • 集合字符转int
list
	.stream()
	.map(s->Integer.parseInt(s))
	.forEach(System.out::println);
//或者引用的形式
list
	.stream()
	.map(Integer::parseInt)
	.forEach(System.out::println);
//or
list
	.stream()
	.mapToInt(Integer::parseInt)
	.forEach(System.out::println);
  • 来个求和
int result = 
	list
		.stream()
		.mapToInt(Integer::parseInt)
		.sum();
System.out.println(result);

stream流的最后需要一个终结方法,最常用的是forEach,和count,count是统计元素的


还有一个收集功能没提

整理一下数据

list.clear();
list.add("武汉大学");
list.add("武汉科技大学");
list.add("武汉工程大学");
list.add("中国地质大学");
list.add("华中科技大学");
list.add("华侨大学");
list.add("华中师范大学");
list.add("华中农业大学");
  • 收集前两个数据形成一个新的List
List<String> wuhan = 
	list
	.stream()
	.limit(2)
	.collect(Collectors.toList());
wuhan.stream().forEach(System.out::println);
  • 收集前两个数据形成一个新的Set
Set<String> wu = 
	list
	.stream()
	.limit(2)
	.collect(Collectors.toSet());
wu.stream().forEach(System.out::println);
  • 来个map,将字符串中建校时间在1900年后的学校形成一个新的map
    String[] arr = {"武汉大学,1893","武汉科技大学,1898","华中师范大学,1903","华中科技 大学,1952"};
Map<String, Integer> map = 
			Stream.of(arr)
			.filter(s-> Integer.parseInt(s.split(",")[1])>1900)
			.collect(Collectors.toMap(s->s.split(",")[0],s->Integer.parseInt(s.split(",")[1])));
		
map.forEach((k,v)->System.out.println(k+v));
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值