본문 바로가기

카테고리 없음

Java Collections Framework

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

 

whybwhy/paul

Contribute to whybwhy/paul development by creating an account on GitHub.

github.com

이후 Map은 key/value 형태이므로 Collection 과 동일한 인터페이스를 사용하긴 어렵다는 것을 깨닿고

Collection 인터페이스와 Map 인터페이스 두 축으로 나뉜다는 점을 인정하면 Java Collection Framework 구조를 이해하는데 어렵지 않다. 

 

 

https://madplay.github.io/post/java-collection-synchronize

 

이를 기반으로 각각의 객체의 기능을 확인하고 Synchronized 등을 지원하는 Collections 패키지를 확인하고 마무리 한다.

굳이 Collection을 Collections Framework이라고 기재하는 이유는 Collection Interface와 구분하기 위함이다.

Collection이라고 지칭하는 것 때문에 Map도 Collection 인데 Map은 Collection의  subinterface가 아닌지 한참을 고민했기때문이다.