Java 8新特性—05.StreamAPI_Stream中间操作
筛选与切片
filter-接收Lambda,从流中排出某些元素。
limit(n)-截断流,使其元素不超过给定数量
skip(n)-跳过元素,返回一个扔掉了前n个元素流。诺中元素不足n个,则返回一个空流。
distinct-筛选,去重。通过流所生成元素的hashCode()和equals()去除重复元素。
package java8_StreamAPI01;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;
import org.junit.Test;
import java8_StreamAPI01.User;
/**
* 一,Stream API 中间操作
*
*
*/
public class TestStaremAPI2 {
List<User> userList = Arrays.asList(
new User("张三", 17, 23),
new User("李四", 25, 530),
new User("王五", 25, 230),
new User("王五", 25, 230),
new User("赵六", 28, 903));
/**
* 筛选与切片
* filter-接收Lambda,从流中排出某些元素。
* limit(n)-截断流,使其元素不超过给定数量
* skip(n)-跳过元素,返回一个扔掉了前n个元素流。诺中元素不足n个,则返回一个空流。
* distinct-筛选,去重。通过流所生成元素的hashCode()和equals()去除重复元素。
*/
@Test
public void Test1() {
// 中间操作
Stream<User> stream = userList.stream()
.filter((e) -> {//短路操作:就是filter过滤了两条符合的数据,并且limit指定了2.则不会继续执行后面的数据。直接返回。
// System.out.println("Stream API 过滤。");
return e.getAge() > 20;
}).limit(5)
.skip(0)
.distinct()
;//
// 终止操作
stream.forEach(System.out::println);
// 只有执行终止操作,中间操作才会执行,否则中间操作不会执行。该种操作称为惰性求值,延迟加载
}
}