387 Stream流中间操作之filter
1 | Stream <T> filter(Predicate predicate) | 过滤 |
2 | Stream <T> limit(long maxSize) | 返回此流中的元素组成的流,以指定的个数截取 |
3 | Stream <T> skip(long n) | 跳过指定个数的数据,返回剩余元素组成的流 |
4 | Stream <T> concat(Stream a, Stream b) | 合并2个流为1个 |
5 | Stream <T> distinct() | 返回由该流的不同元素(根据Object.equals(Object))组成的流 |
6 | Stream <T> sorted() | 返回自然排序的流 |
Stream <T> sorted(Comparator comparator) | 返回comparator排序的流 | |
<R> Stream <R> map(Function mapper) | 返回经过指定操作的流,Function接口中的方法R apply(T t) | |
intStream mapToInt(ToIntFunction mapper) | 返回一个经过指定操作的IntStream流, intStream:原始int流 ToIntFunction接口中的方法int applyAsInt(T value) | |
Stream <T> forEach() | ||
Stream <T> count() |
>Predicate: boolean test(T t),根据给定的参数做判断,返回一个布尔值。
---------------------------------------------
package e385aso;
import java.util.ArrayList;
public class Demo387Filter {
public static void main(String[] args) {
ArrayList<String> al385 = new ArrayList();
al385.add("HELEN");
al385.add("AMY");
al385.add("ALICE");
al385.add("ANDREW");
al385.add("ANGEL");
al385.add("HEMINGWAY");
al385.add("HI");
al385.add("HEY");
al385.stream().filter((String s) -> {
return s.startsWith("H");
}).forEach(System.out::println);
System.out.println("-");
al385.stream().filter(s -> s.startsWith("H")).filter(s -> s.length() < 5).forEach(System.out::println);
}
}
//HELEN
//HEMINGWAY
//HI
//HEY
//-
//HI
//HEY