상세 컨텐츠

본문 제목

[Stream] 스트림 중간처리와 최종 연산 : mapToInt(), average()

Java

by kwanghyup 2020. 6. 16. 15:04

본문

스트림으로 보낼 축구선수객체를 생성하는 클래스

속성 : 선수이름, 슈팅지수 


public class SoccerPlayer {
    private String name;
    private int shooting; // 슈팅지수

    public SoccerPlayer(String name, int shooting) {
        this.name = name;
        this.shooting = shooting;
    }

    public int getShooting() {
        return shooting;
    }
}

 

 

import java.util.Arrays;
import java.util.List;

public class MapToIntAndAverage {

    public static void main(String[] args) {

        SoccerPlayer ribery = new SoccerPlayer("리베리", 102);
        SoccerPlayer robben = new SoccerPlayer("로벤",101);
        SoccerPlayer lewandowski = new SoccerPlayer("레반도프스키",104);
        SoccerPlayer muller = new SoccerPlayer("뮐러",104);

        List<SoccerPlayer> teamBayern = Arrays.asList(ribery,robben,lewandowski,muller);

        double teamShootAvg = teamBayern.stream()    // [1]
                .mapToInt(SoccerPlayer::getShooting) // [2]
                .average()                           // [3]
                .getAsDouble();                      // [4]

        System.out.println("바이에른 뮌헨팀의 평균슈팅지수 : " + teamShootAvg);
        /*
            [1] 리스트의 객체를 스트림으로 보냄
            [2] 객체의 getShooting 메서드를 참조하여 새로운 IntStream 생성
            [3] 새로 생성된 IntStream 평균을 구함 반환형이 OptionalDouble
            [4] OptionalDouble형을 double형으로 반환
        */
    }
}

관련글 더보기

댓글 영역