RATSENO

두개의 List에서 삭제된 항목, 추가된 항목 필터링 본문

DEV/JAVA

두개의 List에서 삭제된 항목, 추가된 항목 필터링

RATSENO 2021. 5. 11. 16:07
List<Item> asisList = new ArrayList<>();
asisList.add(new Item(1L,"아이템1"));
asisList.add(new Item(2L,"아이템2"));
asisList.add(new Item(5L,"아이템5"));

List<Item> tobeList = new ArrayList<>();
tobeList.add(new Item(1L,"아이템1"));
tobeList.add(new Item(2L,"아이템2"));
tobeList.add(new Item(3L,"아이템3"));
tobeList.add(new Item(4L,"아이템4"));

//아이템3과, 아이템4과 나와야함
List<Item> addedItemList = new ArrayList<>(tobeList);
addedItemList.removeIf(item1->asisList.stream().anyMatch(item2->item2.getId()== item1.getId()));

//아이템5가 나와야함
List<Item> deletedItemList = new ArrayList<>(asisList);
deletedItemList.removeIf(item1->tobeList.stream().filter(item2->item2.getId()==item1.getId()).count()>0);

System.out.println(addedItemList);

default boolean removeIf(Predicate<? super E> filter)

-Predicate, 람다 표현식으로 전달된 조건문이 true인 경우 해당 요소를 제거

 

boolean anyMatch(Predicate<? super T> predicate)

-Predicate, 람다 표현식으로 전달된 조건문이 요소들 중에서 하나라도 true인 경우, true 반환

 

Stream<T> filter(Predicate<? super T> predicate)

-Predicate, 람다 표현식으로 전달된 조건문이 true인 요소들로 이루어진 Stream을 반환. 

'DEV > JAVA' 카테고리의 다른 글

두개의 List에서 변경된 항목 필터링  (0) 2021.05.11
CompletableFuture<T> -2  (0) 2021.03.22
[Lombok]"is"prefix가 붙은 boolean, Boolean  (2) 2021.03.16
CompletableFuture<T> -1  (0) 2021.03.14
[JAVA]TreeSet  (0) 2020.02.05
Comments