Stream流中的常用方法
count
package com.yang.Test.StreamStudy;
import java.util.stream.Stream;
/**
* 统计荷属:count
* 正如旧集合Collection当中的size方法一样,流提供count方法来数一数其中的元素个数
* long count();
* 该方法返回一个long的值表示元素的个数(不再像旧集合那用是int值)
*/
public class CountStudy {
public static void main(String[] args) {
Stream<String> stream = Stream.of("张无忌", "张三丰", "周芷若");
// System.out.println(stream.count());
long count = stream.filter(s -> {
return s.startsWith("张");
}).count();
System.out.println(count);
}
}
运行结果:
limit
取用前几个:limit
limit方法可以对流进行截取,只取用前n个。方法签名:
Stream
参数是一个Long类型,如果集合当前长度大于参数则进行截取;否则不进行操作。基本使用:
代码:
package com.yang.Test.StreamStudy;
import java.util.stream.Stream;
/**
* limit方法可以对流进行截取,只取用前n个。方法签名:
* Stream<T> limit(long maxSize);
* 参数是一个Long类型,如果集合当前长度大于参数则进行截取;否则不进行操作。基本使用:
*/
public class LimitStudy {
public static void main(String[] args) {
Stream<String> stream = Stream.of("张三", "李四", "王五", "赵六", "田七");
stream.limit(4).forEach(s -> System.out.println(s));
}
}
运行结果:
skip
跳过前几个:skip
如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流
String
如果流当前的长度大于n,则跳过前n个;否则将会得到一个长度为0的空流。基本使用:
代码实现:
package com.yang.Test.StreamStudy;
import java.util.stream.Stream;
/**
* 如果希望跳过前几个元素,可以使用skip方法获取一个截取之后的新流
* String<T> skip(long n);
* 如果流当前的长度大于n,则跳过前n个;否则将会得到一个长度为0的空流
*/
public class SkipStudy {
public static void main(String[] args) {
//获取一个Stream流
String[] arr = {"张三", "李四", "王五", "赵六", "田七"};
Stream<String> stream = Stream.of(arr);
stream.skip(3).forEach(s -> System.out.println(s));
}
}

运行结果:
concat
组合:concat
如果有两个流,希望合并称为一个流,那么可以使用Stream接口的静态方法concat:
static
这是一个静态方法,与java.lang.String当中的concat方法是不同的
代码实现:
package com.yang.Test.StreamStudy;
import java.util.stream.Stream;
public class ConcatStudy {
public static void main(String[] args) {
Stream<String> streamA = Stream.of("张三");
Stream<String> streamB = Stream.of("李四");
Stream<String> result = Stream.concat(streamA, streamB);
result.forEach(s -> System.out.println(s));
}
}
运行结果: