一. 总概述:
二. 概述:
Stream流是jdk1.8的新特性,主要用来存储数据和对数据进行加工处理。Stream专注于对集合对象进行各种非常便利、高效的聚合操作(aggregate operation),或者大批量数据操作 (bulk data operation),配合着lambda表达式能达到代码简洁和优美。
三. 如何获得Stream流:
public class Stream {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();
Collections.addAll(arrayList,"黄药师","冯蘅","郭靖","黄蓉","郭芙","郭襄","郭破虏");
//第一种通过Stream中的of()静态方法创建,返回的是Stream
Stream<ArrayList<String>> arrayList1 = Stream.of(arrayList);
//第二种通过Collection接口创建,因此属于Collection的子类都能通过这个方法创建,返回的是集合中的泛型对象的流
Stream<String> stream = arrayList.stream();
//对于非集合的子类可以通过Stream中的of()静态方法创建,如数组,但是对于基本数据类型而言必须声明是其包装类型
Integer[] arr = {11, 22, 33};
Stream<Integer> stream1 = Stream.of(arr);
//对于map来说,可以转化为Set后再通过Collection.stream()来创建,也可以通过of()来创建
Map<String,Integer> map = new HashMap<>();
map.put("语文",100);
map.put("英语",100);
map.put("数学",100);
Stream<Map<String, Integer>> map1 = Stream.of(map);
Stream<Map.Entry<String, Integer>> stream1 = map.entrySet().stream();
}
}
四. Stream流中的常用方法:
1. foreach()方法:forEach(Consumer<? super T> action)
遍历流中的数据,但是不保证数据的顺序。
public class Stream {
public static void main(String[] args) {
ArrayList<String> arrayList = new ArrayList<>();