두고두고 볼 것

일급 콜렉션

문자메일 2022. 9. 22. 21:26

일급 콜렉션이란?  리스트 형태로 된 변수 하나만 가지는 클래스이다.

이 클래스를 만들었을 때 장점은, 해당 리스트 변수를 가지고 하는 책임(메서드) 들이 이 일급 콜렉션 클래스로 이동할 수 있게 된다.

그러면 리스트 변수에 해당하는 작업에 변경이 필요하게 되었을 때 이 일급 콜렉션 클래스에서 변경하면 되겠다는 판단을 바로 할 수 있다. (유지보수 편의성 향상)

 

아래는 일급 콜렉션 예시

 

public class Courses2 {

    private final List<Course2> courses;

    public Courses2(List<Course2> courses) {
        this.courses = courses;
    }


    public double multiplyCreditAndCourseGrade(){
        return courses.stream()
                .mapToDouble(Course2::multiplyCreditAndCourseGrade)
                .sum();
    }

    public int calculateTotalCompletedCredit() {
        return courses.stream()
                .mapToInt(course -> course.getCredit())
                .sum();
    }
}