특징
- 꼭 변수의 타입은 구현체가 아닌 인터페이스를 사용해야 한다. private <<Interface>> images = new <<Iimplementataion>>();
- 콜렉션은 항상 바로 초기화를 하도록 한다.(권장사항)
- 하이버네이트는 선언된 필드를 초기화 할 때 콜렉션을 감싼다.
콜렉션
- java.util.Set -> java.util.HashSet: 중복을 허용하지 않고, 순서를 따지지 않는다. 가장 흔하게 사용되는 타입.
- java.util.SortedSet -> java.util.TreeSet: 정렬 조건을 설정할 수 있다.
- java.util.List -> java.util.ArrayList: 인덱스를 가지고 있다. 중복 허용한다.
- java.util.Collection -> java.util.ArrayList: Bag을 맵핑할 때 사용한다. 중복을 허용하고 순서는 없다.
- java.util.Map -> java.util.HashMap: 키, 값 쌍으로 맵핑되어 있다.
- java.util.Sortedmap -> java.util.TreeMap: 정렬할 수 있다.
- 배열: 배열 타입을 감쌀 수는 없다. 배열은 사용하지 않는게 좋겠다.(lazy loading,
optimized dirty checking 등 이 밖에도 영속성 콜렉션을 다루는데 있어서 편리하고 성능을 높이는 기능들을
사용할 수 없다.)