JAVA8stream嵌套循环并设置值
JAVA8stream嵌套循环并设置值
简介:
Java 8 API添加了⼀个新的抽象称为流Stream,可以让你以⼀种声明的⽅式处理数据。
Stream 不存储数据、不改变源数据
详情请阅读
⼀.测试代码
public static void main(String[] args)throws Exception {
List<IG> igs1 = Arrays.asList(new IG(11),
new IG(12));
List<IG> igs2 = Arrays.asList(new IG(11),
new IG(13));
List<IG> igs3 = Arrays.asList(new IG(11),
new IG(13),
new IG(13));
//出skuId相同的对象组成集合
List<IG> gs1 = igs2.stream().filter(a1 -> igs1.stream().anyMatch(a2 -&SkuId()== a2.getSkuId())
).List());
//打印输出 tSnipingGoodSkus1{11}
gs1.stream().map(IG::getSkuId).forEach(System.out::println);
//对skuId相同的对象属性进⾏操作
List<IG> gs2 = igs2.parallelStream().map(a1 ->{//parallelStream :多线程异步stream
IG tSnipingGoodSku = igs1.stream().filter(a2 -> a1.getSkuId()== a2.getSkuId()).findFirst().orElse(null);//orElse 值为空返回null防⽌空指针异常if(null != tSnipingGoodSku){
a1.setSkuId(666);
}
return a1;
}).List());
//打印输出 tSnipingGoodSkus2{666,13}
gs2.stream().map(IG::getSkuId).forEach(System.out::println);
//sorted()⽅法: 有参从低到⾼排序(升序),⽆参从⾼到底排序(降序)
List<IG> sortedEmp = igs3.stream().sorted(Comparatorparing(IG::getSkuId)).List());
/
/输出11 13 13
sortedEmp.stream().map(IG::getSkuId).forEach(System.out::println);
}
public static class IG {
private Integer skuId;
public Integer getSkuId(){
return skuId;
}
public void setSkuId(Integer skuId){
this.skuId = skuId;
}
java streampublic IG(Integer skuId){
this.skuId = skuId;
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论