Java Collection Framework
자바에서는 효율적인 데이터의 추가 · 삭제 · 검색 등을 돕기 위한 자료구조 인터페이스들을 java.util 패키지에 포함시켜 놓았다. 이들을 Collection Framework라고 총칭하며 우리가 자주 사용하는 List , Set, Map이 대표적이다. 아래 그림을 보면 Collection Framework는 크게 Collection 인터페이스와 Map 인터페이스로 나뉜다. List, Set의 경우 객체를 추가 · 삭제 · 검색하는 방법에 공통점이 있기 때문에 Collection 인터페이스를 정의해 이를 확장하는 방식으로 사용하고 있다.
기술블로그를 쓰면서 Inpa님의 글을 많이 참고하는데 ArrayList, HashMap 등 Collection의 실제 사용방법을 알고싶은 경우 Inpa님의 글을 보면 도움이 될 것이다. 원래는 해당 포스트에서 각 Collection의 사용 방법을 간단하게나마 정리해놓으려고 했는데 아래 글을 보고 생각이 바뀌었다. 진짜 엄청 잘 정리해놓으셔서 다른 글은 볼 필요가 없다고 생각한다.
예시로, List 인터페이스를 살펴보면 자주 사용했던 함수들이나 처음 접하는 함수들이 몇몇 보인다. List의 구현체인 ArrayList나 LinkedList를 살펴보면 List 인터페이스 뿐만 아니라 AbstractList를 상속받고 있는데 추후 여유가 된다면 Collection Framework를 뜯어보면서 객체지향적 설계에 대해 자세히 이해해보고 싶다.