JAVA8stream 끼 워 넣 기 순환 및 설정 값
소개: 자바 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 ->a1.getSkuId() == a2.getSkuId())
).collect(Collectors.toList());
//打印输出 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;
}).collect(Collectors.toList());
//打印输出 tSnipingGoodSkus2{666,13}
gs2.stream().map(IG::getSkuId).forEach(System.out::println);
//sorted()方法: 有参从低到高排序(升序),无参从高到底排序(降序)
List<IG> sortedEmp = igs3.stream().sorted(Comparator.comparing(IG::getSkuId)).collect(Collectors.toList());
//输出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;
}
public IG(Integer skuId) {
this.skuId = skuId;
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.