[Java] 리스트에서 제거하기

해니·2025년 5월 7일
0

Java

목록 보기
30/34
post-thumbnail

특정 조건을 만족하는 리스트 요소를 제거하려면...?🤔

for문if문을 이용하여 리스트 요소를 삭제하는 방법 말고
새로운 방식을 찾아보던 중 ArrayList.removeIf()를 알게되어 정리 해두려고 한다.~




ArrayList.removeIf()

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

  • ArrayList의 메소드로 인자로 전달된 조건을 충족하는 list의 원소들을 삭제한다.
  • Java8부터 생긴 라터 생긴 람다 중 Predicate 를 사용하여 list에서 특정 조건을 만족하는 요소를 삭제하는 방식
  • 리턴 값은 boolean으로 하나라도 삭제가 되면 true, 삭제가 없으면 false를 반환한다.



📖 Predicate 함수형 인터페이스 📖

  • 참,거짓을 return하는 함수형 인터페이스
  • 자바에서 주로 람다 표현식과 함께 사용되어 특정 조건을 테스트하는 데 사용된다.




removeIf() 예제 코드


// 값이 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,

profile
💻 ⚾️ 🐻

0개의 댓글