Anyway

[JAVA] anyMatch 메서드 사용하기 본문

Java

[JAVA] anyMatch 메서드 사용하기

dyana 2024. 11. 13. 11:02

음 ~ 그냥 생각하기 싫어서 생각 안 하고 코드 짯더니

    private Boolean is_correct(List<Vo> VoList) {
        for(Vo fieldVo : VoList) {
            if(Vo.getIs_correct() == false){
                return this.is_correct = false;
            } else if(Vo.getIs_correct() == true){
                return this.is_correct = true;
            }
        }
        return this.is_correct;
    }

 

1차원적이고도  정리 하나도 안 된 유치한 코드 탄생.

 

리스트를 돌면서 하나라도 false인 값이 있다면 is_correct의 값을 false로 내보내야 하는 코드를 짜고 싶었다. 

 

한 번도 안 써본 anyMatch 메소드를 써보기로 결정 ~! 

 

        if(VoList.stream().anyMatch(vo -> !vo.getIs_correct())) {
            return false;
        }
        return true;

 

말도 안 되게 정리됐다. 

 

anyMath() 에 관해..

anyMatch 메서드는 Java의 Stream API에서 제공하는 메서드로 스트림에서 조건을 만족하는 요소가 하나라도 있으면 true를 반환하고 없으면 false를 반환하는 역할을 한다. 주로 list, set 등 배열의 특정 조건을 빠르게 검사할 때 사용된다. 

anyMath는 조건을 만족하는 요소가 발견되면 바로 중단하고 true를 반환한다.

내가 짠 코드에서는 is_correct 값이 false면 바로 false를 뱉게 작성했다. 

 

anyMatch()를 사용하니

1) 효율성 극대화 > 조건 만족하면 바로 중단하니 큰 컬렉션에서도 빠르게 동작 가능 ! 

2) 가독성 굳 > 너무나도 간결

3) 불변성 > 굳이 수정하지 않고 조건 확인하는 용도로만 사용 

 

코드도 간결하고 검사도 빠르니 매우 유용해 앞으로도 자주 쓸 듯 !! GOOD