supremest.35 개발 블로그

[Java] 컬렉션 프레임워크(Collection Framework) 본문

Study/Java

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

supremest.35 2021. 4. 1. 14:19

컬렉션 프레임워크?

다수의 데이터를 쉽고 효과적으로 처리할 수 있는 방법을 제공하는 클래스의 집합

 


주요 인터페이스

  • Collection
    • List
      • 인덱스 순서로 저장이 되고, 중복된 데이터 저장 가능
      • 저장하면 인덱스가 자동으로 부여되고 인덱스를 통해 데이터의 검색, 삭제 가능
      • 길이 자동 조절 가능
      • 종류
        • ArrayList
          • 크기가 가변적으로 변형
          • 객체들이 추가되어 크기를 초과한다면, 자동으로 크기가 늘어난다.
          • 중간의 값을 추가하면 추가된 인덱스 뒤의 값들이 모두 1씩 뒤로 밀려난다.
          • 중간의 값을 삭제하면 삭제된 인덱스 뒤의 값들이 모두 1씩 앞으로 당겨진다. 
        • LinkedList
          • 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식
          • 객체를 추가하거나 삭제하면 삭제된 인덱스의 앞, 뒤 링크만 변경되고 나머지 링크는 변경되지 않는다.
          • ArrayList에 비해 데이터의 추가/삭제가 쉽고 빠르지만, 인덱스가 없어서 특정요소에 접근하기 위해서는 탐색 속도가 떨어진다. 
           
        • Stack
          • 후입선출(LIFO)
        • Vector
    • Set
      • 순서가 없지만 중복 불가
      • 종류
        • HashSet
          • 빠르게 임의의 값에 접근가능
          • 순서 예측 불가
        • SortedSet
          • TreeSet
            • 정렬방법 지정가능
  • Map
    • 키(Key), 값(Value)의 쌍으로 이루어진 데이터의 집합
    • 순서는 유지 안됨. key값의 중복을 허용하지 않으나 value는 중복가능
    • 종류
      • HashMap
        • 중복, 순서 허용 안됨
      • TreeMap
        • 정렬된 순서대로 key와 value를 저장할 수 있어 검색이 빠름
      • Hashtable

 

'Study > Java' 카테고리의 다른 글

[Java] 메소드  (0) 2021.04.16
[Java] 클래스  (0) 2021.04.15
[Java] 객체란  (0) 2021.04.15
[Java] 필드(멤버)변수, 지역변수  (0) 2021.04.01
[Java] 자바 가상 머신(JVM)  (0) 2021.03.22