Collections 클래스, Collection 정리

지윤·2021년 2월 13일
1

Java

목록 보기
17/21

Collections

객체를 다루기 위한 Objects 클래스, 배열을 다루기 위한 Arrays 클래스와 비슷하다. Collection을 다루기 위한 클래스이다.

  • 컬렉션 채우기, 복사, 정렬, 검색 메서드 제공 - fill(), copy(), sort(), binarySearch() 등
  • 컬렉션의 동기화 - synchronizedXXX()
  • 변경불가(ReadOnly) 컬렉션 만들기 - unmodifiableXXX()
  • 싱글톤 컬렉션 만들기 - singletonXXX()
  • 한 종류의 객체만 저장하는 컬렉션 만들기 - checkedXXX()
    원래 컬렉션에는 여러 타입의 객체를 저장할 수 있음
  • allAll(), rotate(), swap(), shuffle(), max(), min(), disjoint(), replaceAll() 등 다양한 메서드 제공

Collection 정리


출처: https://upload.wikimedia.org/

컬렉션 프레임워크(collection framework)란?
다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 자료 구조와 알고리즘을 구조화하여 클래스로 구현해 놓은 것

인터페이스 특징

  • Collection: 데이터의 집합, 그룹을 나타내며, 하위 인터페이스로 List, Set이 있다.
    Map은 컬렉션 처럼 키와 값들을 검색하는 메서드들을 갖지만 “엘리먼트들의 그룹”이라는 컬렉션 인터페이스의 기본 개념과 맞지 않아 별도로 정의

  • List: 순서가 있는 데이터의 집합으로 데이터의 중복을 허용

  • Set: 순서가 없는 데이터 집합으로 중복을 허용하지 않음

  • Queue: 클래스로 구현된 스택과는 달리 자바에서 큐 메모리 구조는 별도의 인터페이스 형태로 제공한다. 선입선출(FIFO) 형태이며, 하위 인터페이스로 Deque 등이 있고 구현한 클래스로 LinkedList 등이 있다.

  • Map: 키(Key), 값(Value)의 쌍으로 이루어진 데이터으 집합으로 순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용

클래스 특징

  • ArrayList - 배열 기반, 동기화X

  • Vector: ArrayList와 비슷한데 동기화 처리가 되어 성능때문에 잘 사용하지 않음

  • Stack: List 컬렉션 클래스의 Vector 클래스를 상속받아, 전형적인 스택 메모리 구조의 클래스를 제공한다. 후입선출(LIFO) 형태

  • LinkedList - ArrayList의 단점인 추가, 삭제 기능을 노드를 이용하여 향상시킴. Queue 인터페이스와 List 인터페이스를 모두 구현함

  • HashMap: ArrayList와 LinkedList의 장점을 합쳐서 만든 클래스이며, 해싱 기법을 사용하여 검색이 빠름

  • TreeMap: TreeSet와 비슷한 개념으로 정렬된 순서대로 엔트리를 저장하여 범위 검색과 정렬에 유리하고 빠름

  • LinkedHashMap: HashMap에 순서 기능 향상

  • HashTable: Hashtable은 예전에 나온 것으로 동기화O, HashMap은 동기화X

  • Properties: Hashtable을 구현한 것으로 키와 값을 String 형태로 저장, 파일 읽기 쓰기에 용이

  • HashSet: Set 인터페이스를 구현한 대표적인 컬렉션 클래스

  • TreeSet: 이진 탐색 트리(binary search tree)로 구현된 클래스로 범위 탐색과 정렬에 유리하지만, 요소 추가 및 삭제 시 시간 증가

  • LinkedHashSet: HashSet에 순서 기능 향상


참고
http://www.tcpschool.com/java/java_collectionFramework_stackQueue

profile
헬로🙋‍♀️

0개의 댓글