package com.imooc.stream;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.stream.IntStream;
import java.util.stream.Stream;
/**
* Stream流的创建方式
*/
public class StreamGenerator
{
//1.基于数组创建
@Test
public void generator1()
{
String[] array = {"Lily", "Andy", "Jackson", "Smith"};
Stream<String> stream = Stream.of(array);
stream.forEach(s -> System.out.println(s));
}
//2.基于集合
@Test
public void generator2()
{
List<String> list = new ArrayList<>();
list.add("Lily");
list.add("Andy");
list.add("Jackson");
list.add("Smith");
Stream<String> stream = list.stream();
stream.forEach(s -> System.out.println(s));
}
//3.利用generate创建无线长度流
@Test
public void generator3()
{
Stream<Integer> stream = Stream.generate(() -> new Random().nextInt(10000));
stream.limit(5).forEach(i -> System.out.println(i));//limit的作用时限制创建流的最大长度
}
//4.基于迭代器创建流
@Test
public void generator4()
{
Stream<Integer> stream = Stream.iterate(1, n -> n + 1);
stream.limit(6).forEach(i -> System.out.println(i));
}
//5.基于字符创建流
@Test
public void generator5()
{
String str = "Aasdfghjkl";
IntStream stream = str.chars();
stream.forEach(c -> System.out.println((char) c));
// stream.forEach(c -> System.out.println(c));
}
}