Stream API的使用
-
Stream和collection的区别在于:
Stream的关注与数据的运算,基于cpu计算数据的,collection是一种静态的数据存储结构,关注数据的存储
Stream不会自己存储元素
Stream不会自己改变原对象,相反,会返回一个持有结果的新的对象
Stream是延迟操作的执行的,意味着只有执行等到有需要的结果时才会进行执行
Stream操作三步骤
一、创建Stream
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
/**
* @author by_zhum
* @date 2021/10/11 16:36
* @Version 1.0
*/
public class StreamDemo {
@Test
public void test01() {
/**
* 1.通过集合的方式来创建Stream
*/
List<String> list = new ArrayList<>();
// 创建串行流,按照集合的顺序来进行处理的
Stream<String> stream = list.stream();
// 创建并行流,即集合中的数据不是按照顺序来进行处理的,多个线程同时操作
Stream<String> stringStream = list.parallelStream();
}
@Test
public void test02() {
/**
* 2.通过数组的方式来创建Stream
*/
Integer[] integers = {1, 2, 5, 6, 8, 1, 22, 1};
Stream<Integer> stream1 = Arrays.stream(integers);
}
@Test
public void test03() {
/**
* 3.通过Stream。of方法来创建
*/
Stream<Integer> integerStream = Stream.of(1, 5, 6, 8, 2);
}
@Test
public void test04() {
/**
* 4.创建无限流
*/
// 迭代的方式 迭代偶数相加 执行10次
Stream.iterate(0, t -> t + 2).limit(10).forEach(System.out::println);
//生成 随机生成10个数
Stream.generate(Math::random).limit(10).forEach(System.out::println);
}
}