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인 객체만 스트림을 통과한다.
[Stream 스트림] flatMap() 2차원 배열 내의 1차원 배열 요소의 중간처리 (0) | 2020.06.17 |
---|---|
[Stream] 스트림 중복 제거 : distinct() 메서드 예제 (0) | 2020.06.17 |
[Stream] 배열에서 스트림 얻기 (0) | 2020.06.16 |
[Stream] 스트림 중간처리와 최종 연산 : mapToInt(), average() (0) | 2020.06.16 |
[Stream] 스트림직렬처리와 병렬처리 비교 (0) | 2020.06.16 |
댓글 영역