ArrayList, HashMap 을 정말 셀수 없이 사용 하면서 Iterator 사용은 자신이 없고 패키지는 커서 (feat.알고리즘) 외울 자신이 없어서
공부 전에 부담이 컸다.
일단 시작 하고 나서 생긴 궁금한 점은 아래와 같다.
- Itrator의 원리와 기능
- 왜 Collection 인터페이스는 Itrator를 사용하고 Map 인터페이스는 Set을 거쳐 Itrator로 순환하는지
- 왜 Map은 Collection 인터페이스를 implements 하지 않는지
먼저 Collection의 Iterator 의 사용법을 숙지 했고 Map의 Set을 거쳐 Iterator로 순환하는 방법을 코딩했다.
하다보니 enhanced for each 문도 접했으니 javascript에서 익숙한 문법이 였다.
https://github.com/whybwhy/paul/blob/master/src/test/java/org/paul/sample/CollectionTests.java
이후 Map은 key/value 형태이므로 Collection 과 동일한 인터페이스를 사용하긴 어렵다는 것을 깨닿고
Collection 인터페이스와 Map 인터페이스 두 축으로 나뉜다는 점을 인정하면 Java Collection Framework 구조를 이해하는데 어렵지 않다.
이를 기반으로 각각의 객체의 기능을 확인하고 Synchronized 등을 지원하는 Collections 패키지를 확인하고 마무리 한다.
굳이 Collection을 Collections Framework이라고 기재하는 이유는 Collection Interface와 구분하기 위함이다.
Collection이라고 지칭하는 것 때문에 Map도 Collection 인데 Map은 Collection의 subinterface가 아닌지 한참을 고민했기때문이다.