1.for循环:遍历集合找出4个字母的以a开头字符串后输出
ArrayList<String> arr =newArrayList<>();
arr.add("abc");
arr.add("abcd");
arr.add("daadcs");
ArrayList<String> list =newArrayList<>();for(String s : arr){if(s.length()==4&& s.startWith("a"))
list.add(s);}for(String s : list)sout(s);2. Stream流优化
arr.stream().filter(s -> s.startWith("a")).filter(s -> s.length()==4).forEach(s ->sout(s));3. 流使用内部迭代方式,不是显示的for循环
Obtaining stream
1. 所有Collection集合(单列,map集合需要先转化为单列)都可以通过stream方法获取流
List<String> list =newList<>();
Stream<String> stream = list.stream();2. 通过Stream接口的成员方法of来获取流
Stream.of(1,2,3);
Stream.of(arr);3. 常用方法:
a. 逐一处理:forEach
voidforEach(Consumer<?super T> action);
b. 过滤器:filter
Stream<T>filter(Predicate<?super T> pre);
c. 映射方法:map
R Stream<R>map(Function<?super T,?extendsR> mapper);
d. 统计流中元素个数:count
longcount();
e. 截取:limit
Stream<T>limit(long maxSize);//截取前maxSize个元素
f. 跳过:skip
Stream<T>skip(long n);//跳过前n个元素,返回剩下元素的流。全部跳过返回一个空元素流
g. 组合流:concat
static<T> Stream<T>concat(Stream<?extendsT> a, Stream<?extendsT> b);