0
点赞
收藏
分享

微信扫一扫

Stream常用方法介绍

方法名   方法作用    返回值类型   方法种类
count 统计个数 long 终结
forEach 逐一处理 void 终结
filter 过滤 Stream 函数拼接
limit 取用前几个 Stream 函数拼接
skip 跳过前几个 Stream 函数拼接
map 映射 Stream 函数拼接
concat 组合 Stream 函数拼接
sort 排序 Stream 函数拼接
distinct 去重 Stream 函数拼接
match 匹配 Stream 函数拼接
max 求最大值
min 求最小值
reduce ....
mapToInt ....

count

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
long count = list.stream().count();
System.out.println(count);//5

forEach

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.forEach(System.out::println);

filter

Stream常用方法介绍_方法名

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
long a = list.stream()
.filter(e -> e.equals("a"))
.count();
System.out.println(a);

limit

Stream常用方法介绍_数据_02

limit方法可以对流进行截取处理,只取前n个数据

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.stream()
.limit(2)
.forEach(System.out::println);

skip

Stream常用方法介绍_数据_03
希望跳过前面几个元素,可以使用skip方法来获取

List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.stream()
.skip(4)
.forEach(System.out::println);

reduce

Stream常用方法介绍_java_04

List<String> list = new ArrayList<>();
list.add("1");
list.add("22");
list.add("1");
list.add("22");
list.add("22");
Integer reduce = list.stream()
.map(Integer::parseInt)
.reduce(0, (x, y) -> {
System.out.println("x="+x+",y="+y);
return x + y;
});
System.out.println(reduce);

Stream常用方法介绍_拆箱_05

mapToInt

Integer占用的内存比int多,在Stream流操作中会自动装箱和拆箱操作
为了提高程序代码的效率,我们可以先将流中Integer数据转化为int数据,然后在操作

List<Integer> list = new ArrayList<>();
list.add(22);
list.add(34);
list.add(5);
list.add(67);
IntStream intStream = list.stream()
.mapToInt(Integer::intValue);
intStream.forEach(System.out::println);

concat

如果有两个流,希望合并成为一个流,那么可以使用Stream接口的静态方法concat

List<Integer> list = new ArrayList<>();
list.add(22);
list.add(34);
List<Integer> list1 = new ArrayList<>();
list1.add(5);
list1.add(67);
Stream.concat(list.stream(),list1.stream())
.forEach(System.out::println);


举报

相关推荐

0 条评论