知识基础:lambda表达式,主要用其来简化集合流式编程中的各种操作。
数据源一般是集合或者数组,都能从这两者上读取出stream流,两者获取stream流的方式以及最终获取到的stream流有些许区别。 注意在集合中只能存放引用类型。
// 从 List集合获取stream流
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(1,2,3,4,5,6));
Stream<Integer> listStream = list.stream();
// 从 Set 集合获取stream流
HashSet<Integer> set = new HashSet<>(Arrays.asList(1,2,3,4,5,6));
Stream<Integer> setStream = set.stream();
HashMap<String, Integer> hashMap = new HashMap<>();
// 获取键的stream流
Stream<String> keyStream = hashMap.keySet().stream();
// 获取值的stream流
Stream<Integer> valueStream = hashMap.values().stream();
// 获取键值对的stream流
Stream<Map.Entry<String, Integer>> entryStream = hashMap.entrySet().stream();
//从数组中获取stream流有两种方式
// 1. 通过数组的Arrays.stream 方法,此方法对于基本数据类型只能对int、long、double进行转换,对于其余基本数据类型会报错
String[] chars = {"1","2","3","4"};
Stream<String> stringStream = Arrays.stream(chars);
// 2. 通过Stream流的Stream.of 方法,可转换基本数据类型,转换出来是基本类型数组的形式。
String[] chars = {"1","2","3","4"};
Stream<String> chars1 = Stream.of(chars);
运行效率:一般来说并行流的运行效率相比起串行流速度要快一些,