good_da22 's devLog

Java

컬렉션 프레임워크(Collection Framework)

good_da22 2022. 7. 28. 23:24

Collection Framework


자료구조 (data structure)


컴퓨터 과학에서 효율적인 접근 및 수정을 가능하게 하는 자료의 조직, 관리, 저장을 의미

데이터 값의 모임, 데이터 간의 관계, 데이터에 적용 가능한 함수나 명령을 의미



배열


homogeneous collection : 동일한 데이터 타입만 관리

타입이 다른 객체를 관리하기 위해서는 매번 다른 배열이 필요



컬렉션


데이터 군(Collection)을 저장하는 클래스들을 표준화한 설계(Framework)


다형성 (Polymorphism)

Object을 이용하면 모든 객체 참조 가능 -> Collection Framework

담을 때는 편리, 빼낼 때는 Object로만 가져올 수 있다.

런타임에 실제 객체 타입을 확인 후 사용해야하는 번거러움 존재

Generic을 이용해 타입 한정

컴파일 타임에 저장하려는 타입 제한 -> 형변환 번거로움 제거



핵심 인터페이스


컬렉션 프레임워크에서는 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식

각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의

그 중 ListSet의 공통 부분을 뽑아 새로운 인터페이스 Collection 정의


List


  • 순서가 있는 데이터 집합
  • 데이터 중복을 허용
  • ex) 일렬로 줄 선 대기자
  • 구현 클래스 : ArrayList, LinkedList, Stack, Vector

Set


  • 순서를 유지하지 않는 데이터 집합
  • 데이터 중복을 허용하지 않는다.
  • ex) 양의 정수 집합, 소수의 집합
  • 구현 클래스 : HashSet, TreeSet

Map


  • 키(key)값(value) 의 쌍(pair)로 이루어진 데이터 집합
  • 순서를 유지하지 않는 데이터 집합
  • 키(key) 는 중복을 허용하지 않는다.
  • 값(value) 은 중복을 허용한다.
  • ex) 우편번호, 지역번호
  • 구현 클래스 : HashMap, TreeMap, Hashtable, Properties



Collection Inferface 주요 메서드


ListSet 의 조상 인터페이스

추가


  • boolean add(E e)

    지정된 객체를 Collection에 추가

    작업을 성공하면 true, 그렇지 않으면 false

  • boolean addAll(Collection<? extends E> c)

    Collection 객체를 Collection에 추가

    작업을 성공하면 true, 그렇지 않으면 false


조회


  • boolean contains(Object o)

    지정된 객체가 Collection에 포함 되어 있는지 확인

    작업을 성공하면 true, 그렇지 않으면 false

  • boolean containsAll(Collection<?> c)

    Collection 객체가 Collection에 포함 되어 있는지 확인

    작업을 성공하면 true, 그렇지 않으면 false

  • boolean equals(Object o)

    동일한 Collection 인지 비교

    작업을 성공하면 true, 그렇지 않으면 false

  • boolean isEmpty()

    Collection이 비어있는지 확인

    비어있으면 true, 그렇지 않으면 false

  • iterator iteratir()

    Collection의 iterator를 얻어서 반환

  • int size()

    Collection에 저장된 객체의 개수를 반환


삭제


  • void clear()

    Collection의 모든 객체를 삭제

  • boolean remove(Object o)

    지정된 객체를 삭제

    작업을 성공하면 true, 그렇지 않으면 false

  • boolean removeAll(Collection<?> c)

    지정된 Collection의 모든 객체를 삭제

    작업을 성공하면 true, 그렇지 않으면 false

  • boolean retainAll(Collection<?> c)

    지정된 Collection에 포함된 객체를 남기고 다른 객체들은 Collection에서 삭제

    작업을 통해 Collection에 변화가 있으면 true, 없으면 false 반환


기타


  • Object[] toArray()

    Collection에 저장된 객체를 객체배열로 반환

  • Object[] toArray(Object[] a)

    지정된 배열에 Collection 객체를 저장해서 반환

'Java' 카테고리의 다른 글

맵(Map)  (0) 2022.07.30
리스트(List) & 셋(Set)  (0) 2022.07.29
예외(Exception) 2  (0) 2022.07.28
예외(Exception) 1  (0) 2022.07.26
제네릭(Generics)  (0) 2022.07.26