for문 과 if문을 이용하여 리스트 요소를 삭제하는 방법 말고
새로운 방식을 찾아보던 중 ArrayList.removeIf()를 알게되어 정리 해두려고 한다.~
default boolean removeIf(Predicate<? super E> filter) {}
ArrayList의 메소드로 인자로 전달된 조건을 충족하는 list의 원소들을 삭제한다. Java8부터 생긴 라터 생긴 람다 중 Predicate 를 사용하여 list에서 특정 조건을 만족하는 요소를 삭제하는 방식boolean으로 하나라도 삭제가 되면 true, 삭제가 없으면 false를 반환한다.📖 Predicate 함수형 인터페이스 📖
- 참,거짓을 return하는 함수형 인터페이스
- 자바에서 주로 람다 표현식과 함께 사용되어 특정 조건을 테스트하는 데 사용된다.
// 값이 null이거나 0인 요소들을 제거한다.
amtList.removeIf(amt -> amt.getSumAmt() == null || amt.getSumAmt().compareTo(BigDecimal.ZERO) == 0);
// 특정 값과 일치하는 요소들을 제거한다.
List<String> alllMemberList = memberDao.getAlllMemberList();
List<String> cancelMemberList = memberDao.getCancelMemberList();
if (ObjectUtils.isNotEmpty(cancelMemberList)) {
alllMemberList.removeIf(member ->
cancelMemberList.stream()
.anyMatch(cancleMember -> StringUtils.equals(cancleMember, member.getName())));
}
[Java] ArrayList 조건 삭제 'removeIf'
[Java] ArrayList.removeIf()
[Java] 프레디케이트(Predicate) 함수형 인터페이스란?
JAVA/Modern JAVA[MODERN JAVA] 람다(Lambda)의 활용 - Predicate, Consumer,