자바 주요 컬렉션 클래스 상속 그림 Ver

코지클래식·2021년 11월 14일
0
post-thumbnail

개요

  1. 네모칸 : 클래스
  2. 실선....: 클래스 상속
  3. 마름모 : 인터페이스
  4. 점선 ...: 인터페이스 상속

자바의 컬렉션을 정리하다보니 너무 얽히고 섥혀있고,
어떤 인터페이스가 어떤 클래스와 연결되어 있는지 파악하기가 힘들어서
그림으로 그려보았습니다.

자바 컬렉션을 처음 공부하시는 분들께서 보고 참고하시면 좋겠습니다!

깨달은 점

1. 맵은 따로 생각해야 한다.

MAP/HashMap은 Iterable도 Collection도 상속하지 않습니다.
다만 같은 util 패키지 안에 있을 뿐입니다.
따라서 List/Set과 HashMap을 메서드 등으로 변경하는건 매우 불편할 것으로 예상됩니다.
그냥 하나하나 넣어야 할 뿐.
(파이썬에서는 호환을 위한 items()나 Counter 함수가 있었는데, 자바에도 있을지? 잘 모르겠습니다.)

2. Set, List는 모두 Iterable하다.

Collection이 Iterable을 상속하고 있습니다.

3. 모든 클래스는 처음으로 클래스형태가 될 때 Object를 상속한다.

4. 사람들이 많이 쓰는 최하단 클래스는 Serialzable, Cloneable을 상속한다.

5. LinkedList는 혼자 뜬금없이 Queue-Deque을 상속받는다.

6. ArrayList는 혼자 뜬금없이 RandomAccess를 상속받는다.

후기

막상 그리고 나니, 왜 아무도 이런식으로 표현하지 않았는지 알겠습니다.
너무 복잡해서 그림으로 표현해도 감당이 안될 정도로 복잡하기 때문이었습니다.

이 그림을 기초로, 각 클래스/인터페이스별 추가된 속성/메소드를 비교해보면 굉장히 도움이 될거라고 생각합니다. 곧 시간을 내서 추가해 보겠습니다.

profile
코지베어

0개의 댓글