lambda表达式


@Test
public void lambda1(){
//遍历
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.forEach(key->{
if (key > 1) {
System.out.println(key);
}
});
}
@Test
public void lambda2(){
Predicate<Integer> pre1 = (i)->i>1;
Predicate<Integer> pre2 = (i)->i<4;
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
//过滤
list.stream().filter(t -> pre1.and(pre2).test(t)).collect(Collectors.toList()).forEach(System.out::println);
}
@Test
public void lambda3(){
Predicate<Integer> pre1 = (i)->i>1;
Predicate<Integer> pre2 = (i)->i<4;
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
//排序
list.stream().sorted((t1, t2) -> t1.compareTo(t2)).collect(Collectors.toList());
//分页
list.stream().skip(2).limit(1).collect(Collectors.toList());
//去重
list.stream().distinct().collect(Collectors.toList());
//最大值
list.stream().max((t1, t2) -> t1.compareTo(t2)).get();
//最小值
list.stream().min((t1, t2) -> t1.compareTo(t2)).get();
//list中的元素是否全部满足predicate
list.stream().allMatch(t -> pre1.test(t));
//list中的元素是否有一个满足predicate
list.stream().anyMatch(t -> pre1.test(t));
//list中的元素是否全部不满足predicate
list.stream().noneMatch(t -> pre1.test(t));
//将list中的元素+1
list.stream().map(t -> t + 1).collect(Collectors.toList());
//map reduce 将list中的元素+1并求和
list.stream().map(t -> t + 1).reduce((sum, s) -> sum + s).get();
}
@Test
public void lambda(){
List<Integer> list1 = Arrays.asList(9, 1, 0,0);
List<Integer> list2 = Arrays.asList(70, 0,0,0);
//求max min sum average
IntSummaryStatistics intSummaryStatistics1 = list1.stream().
mapToInt(x -> x).summaryStatistics();
IntSummaryStatistics intSummaryStatistics2 = list2.stream().
mapToInt(x -> x).summaryStatistics();
//将结果1和结果2合并求max和min以及averrge
intSummaryStatistics1.combine(intSummaryStatistics2);
long sum = intSummaryStatistics1.getSum();
int max = intSummaryStatistics1.getMax();
int min = intSummaryStatistics1.getMin();
double average = intSummaryStatistics1.getAverage();
System.out.println(max + ":" + min + ":" + average);
}

对象和对象的方法

 

转载于:https://www.cnblogs.com/wangjing666/p/8024293.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值