jdk中函数式接口
Consumer
<T
>
Function
<T
,R
>
Supplier
<T
>
Predicate
<T
>
Function
<String
, String
> function = str
->{return str
;};
String s
= function.apply("你好啊");
System
.out
.println("我是返回值---" + s
);
Predicate
<String
> predicate
= str
->{
return str
.isEmpty();
};
System
.out
.println(predicate
.test(""));
# 只有get方法
Supplier supplier
= ()->{return 1204;};
System
.out
.println(supplier
.get());
Consumer consumer
= (str
)->{
System
.out
.println(str
);
};
consumer
.accept("我是哈哈");
Stream流
public static void
main(String
[] args
) {
User u1
= new User(1, 12, "a");
User u2
= new User(2, 22, "b");
User u3
= new User(3, 32, "c");
User u4
= new User(4, 42, "d");
User u5
= new User(5, 52, "e");
User u6
= new User(6, 62, "f");
List
<User
> list
= Arrays
.asList(u1
, u2
, u3
, u4
, u5
, u6
);
list
.stream().filter((u
)->{return u
.getId() % 2 == 0;})
.filter((u
)->{return u
.getAge() > 23;})
.map((u
-> {return u
.getName().toUpperCase();}))
.sorted((uu1
,uu2
)->{return uu2
.compareTo(uu1
);})
.limit(1)
.forEach(System
.out
::println
);
}
使用Stream流做计算
long start
= System
.currentTimeMillis();
long sum
= LongStream
.rangeClosed(0L
, 10_0000_0000
).parallel().reduce(0, Long
::sum
);
long end
= System
.currentTimeMillis();
System
.out
.println(sum
+"总共花了这么多时间----"+(end
-start
));
# 总共的时间大概是
300-400毫秒之间,还是比较快了
转载请注明原文地址: https://lol.8miu.com/read-23199.html