본문 바로가기
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