集合。mysql的本质是存储东西。计算应该交给流。
Stream简单来说可以用于对集合的数据做非常复杂的查找、排序、筛选过滤和映射数据等操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作 。 Stream API 提供了一种高效且易于使用的处理数据的方式。
Stream的特点:
- Stream 不是集合元素,它不是数据结构并不保存数据.它更像一个高级版本的 Iterator。只能显式地一个一个遍历元素并对其执行某些操作.
- Stream 就如同一个迭代器(Iterator),单向,不可往复,数据只能遍历一次.
Stream本身不存储,拿来计算。
- filter() 过滤
public static void main(String[] args) {
// Stream<Integer> number = Stream.of(1, 2, 3, 4, 5);
// List<Integer> result2 = number.filter(x -> x!= 3).collect(Collectors.toList());
// result2.forEach(x -> System.out.println(x));
List<String> list = new ArrayList<>();
list.add("诗和远方");
list.add("落霞与孤鹜齐飞");
list.add("秋水共长天一色");
list.add("诗和沉远方沉");
Stream<String> listStream = list.stream().filter(element -> element.contains("诗"));
listStream.forEach(System.out::println);
}
Stream filter(Predicate<? super T> predicate);
Predicate是一个函数式接口
void forEach(Consumer<? super T> action);
forEach接收Consumer类型的函数式接口
- toArray() 返回一个包含此流的元素的数组