DEV/JAVA
두개의 List에서 변경된 항목 필터링
RATSENO
2021. 5. 11. 16:33
List<Item> asisList = new ArrayList<>();
asisList.add(new Item(1L,"아이템1"));
asisList.add(new Item(2L,"아이템2"));
asisList.add(new Item(3L,"아이템3"));
List<Item> tobeList = new ArrayList<>();
tobeList.add(new Item(1L,"아이템1"));
tobeList.add(new Item(2L,"아이템2입니다."));//이름 변경
tobeList.add(new Item(3L,"아이템3입니다."));//이름 변경
tobeList.forEach(item1 -> {
asisList.stream()
.filter(item2-> item2.getId()==item1.getId())
.map(temp->{
System.out.println(temp);
return temp;
})
.findFirst()
.map(temp2->{
System.out.println("===findFirst===");
System.out.println(temp2.getId());
System.out.println("===============");
return temp2;
})
.ifPresent(item2-> {
if(!item2.getName().equals(item1.getName())){
System.out.println("이름이 "+item2.getName()+"에서 \'"+item1.getName()+"\'으로 변경");
}
});
});
//이름이 아이템2에서 '아이템2입니다.'으로 변경
//이름이 아이템3에서 '아이템3입니다.'으로 변경
Optional<T> findFirst();
-해당 스트림의 첫번째 요소를 Optional로 반환