상세 컨텐츠

본문 제목

[Stream] 스트림 필터 : filter() 메서드 예제

Java

by kwanghyup 2020. 6. 17. 08:45

본문

public enum Gender {
    MALE,FEMALE;
}
public class SportsStrar {

    private String name;
    private Gender gender;
    private int age;

    public SportsStrar(String name, Gender gender, int age) {
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public SportsStrar setName(String name) {
        this.name = name;
        return this;
    }

    public Gender getGender() {
        return gender;
    }

    public SportsStrar setGender(Gender gender) {
        this.gender = gender;
        return this;
    }

    public int getAge() {
        return age;
    }

    public SportsStrar setAge(int age) {
        this.age = age;
        return this;
    }
}
import java.util.Arrays;
import java.util.List;

public class FilterExam {

    public static void main(String[] args) {
        List<SportsStrar> list = Arrays.asList(
            new SportsStrar("김연아",Gender.FEMALE,29),
            new SportsStrar("손흥민",Gender.FEMALE,27),
            new SportsStrar("이상화",Gender.FEMALE,31),
                new SportsStrar("장미란",Gender.FEMALE,37),
                new SportsStrar("박찬호",Gender.MALE,46),
                new SportsStrar("이승엽",Gender.MALE,43),
                new SportsStrar("김승연",Gender.MALE,41)
        );

        int maxAgeOfmale = list.stream()
                .filter(s -> s.getGender()== Gender.MALE)
                .mapToInt(SportsStrar::getAge).max().getAsInt();

        System.out.println(maxAgeOfmale);

    }
}

 

 

filter 메서드의 파라미터 : Predicate<T> 인터페이스를 구현한 객체 

int maxAgetOfmale = list.stream().filter(new Predicate<SportsStrar>() {
          
          @Override
            public boolean test(SportsStrar sportsStrar) {
                return sportsStrar.getGender()==Gender.FEMALE;
            }
        })
        
                .mapToInt(SportsStrar::getAge).max().getAsInt();

 

test 메서드 몸체 구현 방법 

파라미터로 전달받은 객체의 참조변수를 이용해  반환값이 불리언인 조건식을 만든다. 

반환값이 true인 객체만 스트림을 통과한다.  

 

관련글 더보기

댓글 영역