Stream流常见中间操作方法

  • Stream<T>filter(Predicate predicate):对流中的数据进行过滤                                                            Predicate接口中的方法:                                                                                                           boolean test(T t) :对给定的参数判断,返回一个布尔值                                                            
ArrayList<String> arrayList = new ArrayList<>();
		arrayList.add("张无忌");
		arrayList.add("张翠山");
		arrayList.add("张三丰");
		arrayList.add("张良");
		arrayList.add("谢广坤");
		//过滤出姓氏含有"张"的人名
		arrayList.stream().filter(s->s.startsWith("张")).forEach(s->System.out.println(s));
  •  Stream<T> limit (long maxSize) :截取指定参数个数的数据。

        

ArrayList<String> arrayList = new ArrayList<>();
		arrayList.add("张无忌");
		arrayList.add("张翠山");
		arrayList.add("张三丰");
		arrayList.add("张良");
		arrayList.add("谢广坤");
		arrayList.stream().limit(2).forEach(s->System.out.println(s)); 
//张无忌 张翠山

  • Stream<T> skip(long n) :跳过指定参数个数的数据。
	ArrayList<String> arrayList = new ArrayList<>();
		arrayList.add("张无忌");
		arrayList.add("张翠山");
		arrayList.add("张三丰");
		arrayList.add("张良");
		arrayList.add("谢广坤");
		arrayList.stream().skip(2).forEach(s->System.out.println(s));
//张三丰 张良 谢广坤
  • static<T> Stream<T> concat(Stream a,Stream b):合并a流和b流为一个流。
ArrayList<String> arrayList1 = new ArrayList<>();
		arrayList1.add("张无忌1");
		arrayList1.add("张翠山1");
		arrayList1.add("张三丰1");
		arrayList1.add("张良1");
		arrayList1.add("谢广坤1");
	
		ArrayList<String> arrayList2 = new ArrayList<>();
		arrayList2.add("张无忌2");
		arrayList2.add("张翠山2");
		arrayList2.add("张三丰2");
		arrayList2.add("张良2");
		arrayList2.add("谢广坤2");
		Stream.concat(arrayList1.stream(), arrayList2.stream()).forEach(s->System.out.println(s));
//张无忌1 张翠山1 张三丰1 张良1 谢广坤1 张无忌2 张翠山2 张三丰2 张良2 谢广坤2
  • Stream<T> distinct() :取出流中重复元素。依赖hashCode和equals方法。
ArrayList<String> arrayList1 = new ArrayList<>();
		arrayList1.add("张无忌1");
		arrayList1.add("张翠山1");
		arrayList1.add("张三丰1");
		arrayList1.add("张良1");
		arrayList1.add("谢广坤1");
		arrayList1.add("谢广坤1");
		arrayList1.add("谢广坤1");
		arrayList1.stream().distinct().forEach(s->System.out.println(s));
//张无忌1 张翠山1 张三丰1 张良1 谢广坤1

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值