跳至主要內容

Stream

稀客大大大约 1 分钟

1、生成Stream流

常用的可以使用 List,Set, Map

调用steam生成Stream对象

2、生成的stream

filter: 过滤元素的方法:(t)->boolean

如果结果是true,这个元素会保留(不过滤掉),

如果为false元素会被扔掉

Stream<T> filter(Predicate<? super T> predicate);

filter:方法的参数是一个函数:

传入你要判断的元素对象,实现可以使用lambda表达式,表达是的入参T就是元素

返回值就是true/false,

lambda: x -> !x.isEmpty() 就是上面的test方法的实现。

collect()

 collect()结束流的操作,可以返回你要的结果
 Collectors.toList() // 把结果生成一个新的list返回
 Collectors.toSet() // 把结果生成一个新的set返回

代码

public class Main {

    public static void main(String[] args) {
        // 实现一个效果,把list中空格元素去除掉,得到一个新的list
        // 1、创建一个list
        List<String> list = Arrays.asList("a", "b", "", "d", "e");
        // 2、生成一个stream  filer:是一个过滤操作
        long count = list.stream().filter(x -> !x.isEmpty()).count();
        System.out.println("非空的元素个数:" + count);
        // 3、得到一个新的list collect()结束流的操作,可以返回你要的结果
        List<String> filteredList = list.stream().filter(x -> !x.isEmpty()).collect(Collectors.toList());
        System.out.println(filteredList);
        // 4、得到一个新的set
        Set<String> filteredSet= list.stream().filter(x -> !x.isEmpty()).collect(Collectors.toSet());
        System.out.println(filteredSet);
    }
}
上次编辑于:
贡献者: 稀客