본문 바로가기

JAVA

Collection Framework 정복 1탄 - Collection Framework란?

이번 정복 시리즈에서는 Collection Framework 각각의 종류 및 특성에 대해 하나씩 알아보고자 합니다~

이 시리즈를 다 읽고 나시면 이에 대해 완벽히 아실 수 있도록! 글을 작성해 보도록 하겠습니다

 

Collection Framework란?

자바에서 컬렉션 프레임워크란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다.

즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다

 

이러한 컬렉션 프레임워크의 장점은 다음과 같습니다.

 

  • 인터페이스와 다형성을 이용한 객체지향적 설계를 통해 표준화되어 있기 때문에, 사용법을 익히기에 편리합니다.
  • 데이터 구조 및 알고리즘의 고성능 구현을 제공하여 프로그램의 성능과 품질을 향상합니다.
  • 소프트웨어 재사용을 촉진합니다. 만약 자바에서 지원하지 않는 새로운 자료구조가 필요하다면, 컬렉션들을 조합하여 새로운 자료구조를 만들어 낼 수도 있습니다.

이러한 Collection Framework를 사용할 때는 한 가지 주의하실 점이 있습니다!

 

컬렉션 프레임워크에 저장할 수 있는 데이터는 오직 객체뿐입니다. 즉, int 형이나 double형과 같은 primitive 타입을 저장하려면 wrapper 타입으로 변환하여 저장해야 합니다.

 

위의 말을 다르게 해석하면 이렇게 볼 수도 있겠죠??? 객체를 담는 것은, 곧 주소값을 담는다는 것이기에 null도 저장이 가능합니다.


Collection Framework 종류

컬렉션 프레임워크는 크게 Collection 인터페이스Map 인터페이스로 나뉩니다.

List와 Set 인터페이스를 구현한 컬렉션 클래스들은 공통부분이 많기 때문에, 공통부분을 모은 Collections 인터페이스로 상속되어 있습니다.

Map 인터페이스의 구현체들은 두 개의 데이터를 묶어서 한쌍으로 다루기에 Collections 인터페이스와 따로 분리되어 있습니다.

 

위 그림 가장 최상위를 보시면 컬렉션 인터페이스들의 가장 최상위 인터페이스인 Iterable 인터페이스를 볼 수 있습니다.

이는 컬렉션 내를 순회하기 위한 이터레이터 객체를 관리하는 인터페이스이다! 정도로 아시면 좋을 것 같습니다.


Collection 인터페이스

Collection인터페이스는 List, Set, Queue에 상속을 하는 실질적인 최상위 컬렉션 타입입니다.

위 세 인터페이스의 구현체들은 다음과 같은 메서드를 사용할 수 있습니다.

 


2탄에서는 List 인터페이스와 이에 대한 여러 구현체들에 대해 알아보겠습니다 :)

 

참고

http://www.tcpschool.com/java/java_collectionFramework_concept

https://hudi.blog/java-collection-framework-1/ 

https://inpa.tistory.com/entry/JCF-🧱-Collections-Framework-종류-총정리#priorityqueue_클래스