본문 바로가기
Language/Java

Stream의 여러 예제들

by ilyadelavie 2022. 7. 19.

다른 클래스에 있는 요소의 평균 값 구하기



  
public class Solution {
public double Average(List<Student> students) {
double answer = members.stream()
.filter(n -> n.getGender().equals("Male")) //(1)
.mapToInt(Student::getAge) //(2)
.average() //(3)
.orElse(0.0); //(4)
return answer;
}
static class Student {
String name;
String gender;
int age;
public Member(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public String getName() {
return name;
}
public String getGender() {
return gender;
}
public int getAge() {
return age;
}
}
}

 

(1) .filter()

  • 조건을 넣어 필터링
  • && 연산자를 쓰거나 .filter()연산자를 한줄 더 작성할 수 있음

(2) .mapToInt()

  • Stream을 Intstream으로 매핑 (*Intstream은 max, min, average 등 다양한 메서드 지원)
  • Student 객체를 age 값으로 매핑해서 age를 요소로 하는 새로운 스트림을 생성

(3).average()

(4).orElse()

 

 

 숫자 배열에서 Max 값 찾기



  
  • Arrays.stream()
    • 기본 배열을 IntStream 스트림으로 변환한다
  • max()
    • 결과를 Optional 객체로 반환한다
  • getAsInt() -> 이미 int 형인데 왜? ㄴㄴ 스트림형?
    • int 값을 반환한다.
    • max값이 없는 경우에는 NoSuchElementException 예외가 발생할 수 있다

 

'Language > Java' 카테고리의 다른 글

Thread의 생성과 실행  (0) 2022.07.19
Stream 최종 연산  (0) 2022.07.19
Stream 중간 연산  (0) 2022.07.19