标签:去重 应用 col ret 用途 细节 java 工作 equal
Runnable runnable = () -> {System.out.println("hello");};
函数式接口 | 参数类型 | 返回类型 | 用途 |
---|---|---|---|
BiFunction<T, U, R> | T, U | R | 对类型为 T, U 参数应用操作,返回 R 类型的结果。包含方法为 R apply(T t, U u); |
UnaryOperator |
T | T | 对类型为T的对象进行一元运算,并返回T类型的结果。包含方法为 T apply(T t); |
BinaryOperator |
T, T | T | 对类型为T的对象进行二元运算,并返回T类型的结果。包含方法为 T apply(T t1, T t2); |
BiConsumer<T, U> | T, U | void | 对类型为T, U 参数应用操作。包含方法为 void accept(T t, U u) |
BiPredicate<T,U> | T,U | boolean | 包含方法为 boolean test(T t,U u) |
ToIntFunction |
T | int long double | 分别计算int、long、double、值的函数 |
IntFunction |
int long double | R | 参数分别为int、long、double 类型的函数 |
Consumer<String> c1 = System.out::println;
c1.accept("124");
集合数据处理,上面的都是为它服务的。。。
map(Function f) | 接收一个函数作为参数,该函数会被应用到每个元素上,并将其映射成一个新的元素。 |
---|---|
mapToDouble(ToDoubleFunction f) | 接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的 DoubleStream。 |
mapToInt(ToIntFunction f) | 接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的 IntStream。 |
mapToLong(ToLongFunction f) | 接收一个函数作为参数,该函数会被应用到每个元素上,产生一个新的 LongStream。 |
flatMap(Function f) | 接收一个函数作为参数,将流中的每个值都换成另一个流,然后把所有流连接成一个流 |
1. foreach(Consumer consumer);把每个数据经过消费器消费。
方法 | 描述 |
---|---|
allMatch(Predicate p) | 检查是否匹配所有元素 |
anyMatch(Predicate p) | 检查是否至少匹配一个元素 |
noneMatch(Predicate p) | 检查是否没有匹配所有元素 |
findFirst() | 返回第一个元素 |
findAny() | 返回当前流中的任意元素 |
方法 | 描述 |
---|---|
count() | 返回流中元素总数 |
max(Comparator c) | 返回流中最大值 |
min(Comparator c) | 返回流中最小值 |
forEach(Consumer c) | 内部迭代(使用 Collection 接口需要用户去做迭代,称为外部迭代。相反,Stream API 使用内部迭代——它帮你把迭代做了) |
方法 | 描述 |
---|---|
reduce(T iden, BinaryOperator b) | 可以将流中元素反复结合起来,得到一个值。返回 T |
reduce(BinaryOperator b) | 可以将流中元素反复结合起来,得到一个值。返回 Optional |
//基于集合
public void test4() {
List<Student> list = StudentData.getList();
Stream<Student> stream = list.stream();
stream.forEach(System.out::println);
}
//基于无限流
public void test3() {
Stream<Double> stream = Stream.generate(() -> Math.random());
stream.forEach(System.out::println);
}
//基于散数据
public void test2() {
Stream<String> of = Stream.of("123", "agasd", "12a", "asdfa");
of.forEach(System.out::println);
}
//基于数组数组
public void test1() {
List<Student> list = StudentData.getList();
Student[] students = null;
list.toArray(students);
Stream<Student> stream = Arrays.stream(students);
stream.forEach(System.out::println);
}
//举例:
public class Main4 {
@Test
public void test1() {
//Student泛型传递
List<Student> list = StudentData.getList(); //StudentDate的静态方法可拿到javaBean类:Student.
//.筛选器.筛选器.排序.限制器.终止操作。
list.stream().filter(t -> t.getGrade() == 3).filter(t -> t.getScore() < 60).sorted().limit(3).forEach(System.out::println);
}
}
标签:去重 应用 col ret 用途 细节 java 工作 equal
原文地址:https://www.cnblogs.com/aishuijdemiaomiao/p/10014958.html