package cn.cuit.stream;
import java.util.stream.IntStream;
import org.junit.Test;
public class StreamTest {
@Test
public void testTakeWhileAndDropWhile() {
/**
* 从Stream中依次获取满足条件的元素,直到不满足条件为止结束获取
*
* 举例:Stream中的元素 12, 4, 3, 6, 8, 9
*
* 条件是 x -> x % 2 == 0 ,即判断是否为偶数,即当遇到元素不为偶数时终止获取
*
* 那么得到的结果输出就是,12, 4 因为下一个元素为3不为偶数,即结束获取,丢弃后面的其他元素
*/
IntStream.of(12, 4, 3, 6, 8, 9).takeWhile(x -> x % 2 == 0).forEach(System.out::print);
/**
* 从Stream中依次删除满足条件的元素,直到不满足条件为止结束删除
*
* 举例:Stream中的元素 12, 4, 3, 6, 8, 9
*
* 条件是 x -> x % 2 == 0 ,即判断是否为偶数,即当遇到元素不为偶数时终止删除
*
* 那么得到的结果输出就是,3, 6, 8, 9 因为下一个元素为3不为偶数,即结束删除,返回3及以后剩下的所有元素
*/
IntStream.of(12, 4, 3, 6, 8, 9).dropWhile(x -> x % 2 == 0).forEach(System.out::print);
}
}
********************************* 不积跬步无以至千里,不积小流无以成江海 *********************************