ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컬렉션 프레임워크(collection framework)
    백엔드/자바 2020. 8. 16. 02:21

    컬렉션 프레임워크의 필요성

    자바를 배우기 시작하면 데이터 관리를 위한 기능인 배열을 배우게 된다.

     

    하지만 배열은 사용하다보면 여러 면에서 한계가 드러난다.

     

    그 중에서 가장 큰 한계 중 하나는 배열을 선언시 크기를 미리 지정해야한다는 것이다.

     

     

     

    예를 들어 위와 같이 정수형 데이터 3개를 넣을 수 있는 배열을 선언했다고 가정해보자.

     

    여기서 3개의 정수형 데이터까지는 정상적으로 입력되지만, 4개부터는 컴파일 오류를 발생시킨다.

     

    자바를 이용해 계속 개발하다보면 배열의 크기를 미리 가늠할 수 없는 경우가 더 많다.

     

    그럴때마다 별도의 처리를 해주는 등의 불편함이 발생한다.

     

    또한 배열은 단 한가지 타입의 데이터만 입력이 되므로 이러한 점도 불편함을 발생시킨다.

     

    이러한 배열의 한계로 인해 데이터를 다루기 위한 컬렉션 프레임워크가 개발되었다.

    컬렉션 프레임워크란?

    우선 컬렉션에 대한 용어부터 알아보자.

     

    컬렉션이란 여러 객체(데이터)를 모아놓은 것을 의미한다.

     

    컬렉션 프레임워크는 컬렉션를 다루기 위한 표준화된 프로그래밍 방식을 말한다.

     

    간단히 설명하면 컬렉션(다수의 객체)을 다루기 위해 데이터를 저장하는 자료구조와

     

    데이터를 처리하는 알고리즘을 구조화하여 구현한 클래스의 모음을 말한다.

     

    컬렉션 프레임워크는 컬렉션들의 저장, 삭제, 검색, 정렬하는 등의 작업을 도와준다.

     

    그러므로 우리는 프레임워크에 속한 클래스의 사용법을 익힘으로써

     

    간편하게 다양한 컬렉션을 처리할 수 있게 된다.

    컬렉션 프레임워크의 구성

    컬렉션 프레임워크는 데이터들을 특성에 따라 크게 3가지로 나눈다.

     

     

    그리고 이 분류에 따라 3개의 인터페이스(List, Set, Map)를 정의하였다.

     

    이 중에서 List,Set은 공통 부분을 다시 뽑아 새로운 인터페이스 Collection을 추가로 정의했다.

     

    반면 Map의 경우 형태, 사용법이 전혀 달라서 Collection과는 별도의 인터페이스로 정의되었다.

     

    앞서 말했듯 컬렉션 프레임웍은 데이터를 처리하기 쉽게 만든 클래스의 모음이라고 이야기했는데,

     

    이러한 클래스들은 모두 3개의 인터페이스 중 하나를 구현하고 있다.

     

    그래서 각 클래스를 잘 다루기 위해서는 인터페이스의 특징을 잘 알고 있어야 한다.

     

     

    인터페이스명 특징

    Collection


    List


    저장 순서가 유지되는 데이터의 집합. 데이터 중복을 허용함


    구현 클래스: ArrayList, LinkedList, Stack, Vector 등


    Set


    저장 순서가 유지되지 않는 데이터의 집합. 데이터 중복 허용치 않음


    구현 클래스: HashSet, TreeSet


    Map


    key와 value 쌍으로 이뤄진 데이터 집합.

    저장 순서는 유지되지 않고 key는 중복을 허용치 않는다.

    반면 value는 중복을 허용한다.


    구현 클래스: HashMap, TreeMap, Hashtable, Properties

     

Designed by Tistory.