본문 바로가기

ETC

일급 컬렉션이란?

객체지향에서 알아두어야 할 것이 '일급 컬렉션(First Class Collection)'이었다. 

나는 왜 몰랐던 것인가.. 

 

아래와 같은 코드가 있다고 보자. 

Map<String, String> map = new HashMap<>(); 
map.put("1", "A"); 
map.put("2","B"); 
map.put("3","C");

map에 3개의 값을 wrapping 하는 것이 일급 컬렉션이다. 

public class HelloWorld { 
	private Map<String, String> hi; 
    
    public HelloWorld(Map<String, String> hi) { 
    	this.hi = hi; 
   	}
}

collection을 wrapping 하면서, 그 외 다른 멤버변수가 없는 상태를 일급 컬렉션이라고 한다. 

즉, Collection을 wrapping 하면서 + 멤버변수가 하나밖에 없다는 것이 포인트이다. 

 

다른 예시도 보자.

public class Person { 
	private String name;
    private List<Car> cars; 
} 

public class Car {
	private String name; 
    private String oil; 
}
public class Person { 
	private String name; 
    private Cars cars;
}

public class Cars { 
	private List<Car> cars; 
} 

public class Car { 
	private String name; 
    private String oil; 
}

일급 컬렉션의 경우 List<Car> cars 외에 다른 멤버변수가 없다. 

 

참고 

https://jojoldu.tistory.com/412

 

일급 컬렉션 (First Class Collection)의 소개와 써야할 이유

최근 클린코드 & TDD 강의의 리뷰어로 참가하면서 많은 분들이 공통적으로 어려워 하는 개념 한가지를 발견하게 되었습니다. 바로 일급 컬렉션인데요. 왜 객체지향적으로, 리팩토링하기 쉬운 코

jojoldu.tistory.com

https://tecoble.techcourse.co.kr/post/2020-05-08-First-Class-Collection/