Day29 - Stream and method reference

1. Stream flow

1.1. Stream stream into

Stream流完全不是I/O流,按照流水线处理方式来考虑代码中的思想。
	JDK1.8 之后,我们拥有了Lambda表达式,让代码的中心偏向解决实际问题,直到重点,可以提高效率。
	Stream流中使用了大量Lambda表达式,利用Lambda操作方式,提供开发效率

1.2 Gets a Stream flow

java.util.stream.Stream<T> JDK1.8的新特征
	1. 所有的Collection<T>集合都有对应的Stream();
	2. 可以通过Stream类中的static Stream of()获取
		static Stream<T> of(T... t);
		static Stream<T> of(T t);

1.3 Stream common method

延迟方法:
	返回值类型依然是Stream接口本身,并没有影响我们操作真正的资源
	允许链式操作,
	例如
		filter(XXX).limit(XXX).sorted(XXX).
终结方法:
	返回值类型不是Stream接口本身,要么处理数据,要么返回其他类型数据,并且不再支持Stream流对象链式操作,count,foreach
1.3.1 foreach termination method [method]
void foreach(Consumer<? super T> action);
/*
终结方法:
	需要一个Consumer接口进行操作处理,消耗一个数据
	Consumer接口是一个【函数式接口】那就可以使用Lambda表达式
	Consumer接口中方法是
		void accept(T t);
*/
1.3.2 filter method
Stream<T> filter(Predicate<? super T> condition);
/*
	filter是过滤方式,需要的参数是Predicate接口,Predicate是一个函数式接口,可以直接使用Lambda表达运行。
	这里返回值类型是Stream类对象,是经过过滤之后的Stream类型,可以进行链式操作
	Predicate接口中需要实现的方法
		boolean test(T t);
*/
1.3.3 map method
<R> Stream<R> map(Function<? super T, ? super R> fun);
/*
类型转换操作,得到的一个转换之后数据类型的Stream流对象
这里需要的参数是Functtion函数式接口,
	R apply(T t);
	T类型的数据转换成R类型数据
*/
1.3.4 count termination method [method]
long count();
/*
返回当前Stream流对象中有多少个元素
类似有Collection接口下的size(). String的length();
【终结方法】
	一旦执行Stream流对象被关闭
*/
1.3.5 limit method
Stream<T> limit(long maxSize);
/*
对于当前Stream流对象操作的数据进行限制操作,限制个数到maxSize
例如:
	Stream流中保存的有10个元素,limit 5 ==> 前五个元素
*/
1.3.6 skip method
Stream<T> skip(long n);
/*
返回值依然是一个Stream流对象,这里跳过当前Stream流对象前n个元素
*/
1.3.7 concat method
static Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b) 
/*
拼接两个Stream流对象,是一个静态方法,得到新的Stream流对象
*/

2. The reference method

2.1 The method requires little reference

 1. 明确对象
 	对象 ==> 调用者
 	类对象,类名,super,this,构造方法,数组构造方法
 2. 明确的执行方法
 	该方法只有名字不需要显式出现参数
 3. 需要处理的数据
 	【联想,推导,省略】
 4. :: 方法引用格式

2.2 The method is performed by the class object reference

1. 明确对象
	类对象
2. 明确执行的方法
	自定义
3. 处理的数据
	简单要求为String类型
Published 19 original articles · won praise 50 · views 10000 +

Guess you like

Origin blog.csdn.net/qq_41424681/article/details/104825110