Stream
生成方式
生成流
通过数据源(集合、数组等)生成流
list.stream()
常见生成方式
-
Collection体系的集合可以直接使用默认方法stream()生成流
-
//Collection生成流 ArrayList<String> list = new ArrayList<>(); HashSet<String> set = new HashSet<>(); Stream<String> listStream = list.stream(); Stream<String> setStream = set.stream();
-
Map体系集合间接生成流
-
//Map生成流 HashMap<String, Integer> map = new HashMap<>(); Stream<String> keyStream = map.keySet().stream(); Stream<Integer> valueStream = map.values().stream(); Stream<Map.Entry<String, Integer>> entryStream = map.entrySet().stream();//键值对对象流
-
数组可以通过Stream接口的静态方法of(T…values)生成流
-
//数组生成流 String[] strArray = { "hello","world","java"}; Stream<String> strArrayStream = Stream.of(strArray); Stream<String> strArrayStream2 = Stream.of("hello", "world", "java"); Stream<Integer> integerStream = Stream.of(1, 2, 3, 4);
中间操作
一个流后面可以跟随任意个中间操作,目的是打开流,做出过滤或映射等操作,再返回一个新的流
list.stream().filter()//通常使用Lambda表达式完成规则表达
常见操作方法
-
filter(Predicate predicate):用于对流中的数据进行过滤
Predicate接口中的方法 boolean test(T t):对给定参数进行判断,返回一个布尔值
ArrayList&