JDK8新特性

JDK8新特性

函数式接口://只有一个抽象方法可以包含其他方法
修饰符 interface 接口名称{
public abstract 返回值类型 方法名称(可选参数信息);
}//抽象方法只能有一个,其它方法可以包含体现与lambda使用
//比匿名内部类快
@FunctionalInterface:是否是一个函数式接口
使用:()->{};

	先写好一个函数式接口,然后再用lambda表达式来操作
	lambda来实现接口;
常用的函数式接口:
	java.util.function.Supplier<T>;//生产行接口
		T get();
	java.util.function.Consumer<T>;
		void accept();
		默认
		andThen://把两个consumer接口组合到一起	
		对象.andThen(对象2).accept();//链接消费
	java.util.function.Predicate<T>;//对数据进行判断
		boolean test(T t);
		默认方法:
			and          or    negate取反
	java.util.function.Function<T,R>;//t和r为数据类型
		R apply(T t);//t类型转化为r
		andThen();//俩个组合

Stream流://针对与集合
管道流:只能使用一次,第二个流生成的时候第一个流已经关闭了
list.stream()
.filter()//过滤
.filter()
.forEach();
filter();//过滤
map()//
skip()//
coemt()//
获取流:
1.Collection通过stream获取//单列集合
default Stream str();
list.stream();//转化为流
set.stream();
2.Stream接口的静态方法
Stream.of();//将数组转化为流
4.延迟方法:放回是不是注解的本身数据类型
filter://将一个流转化为另外一个流
stream.filter((string name)->{return name.startsWith(“张”);})
map();//Fonctiom接口
stream.map((string s)->{return integer.parsrInt(s);})
limit()😕/取前几个
limit(3);//返回前三个
skip();//跳过前几个
skip(4);//跳过前四个

	5.终结方法:
		forEach();//方法
			void forEach(Consumer<? super T>action)
		count();//size
			long类型
	组合方法:
		静态方法:
			concat()
			static <T>  Stream<T> concat (Stream<? exends T> a,stream <? exends T>)
			stream.concat(ste1,str2);

方法引用://::
lambda简化:
前提是对象和方法都存在
对象::方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

每天至少八杯水i

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值