본문 바로가기
프로그래밍 언어/Java

[Java] 컬렉션(Collection)

by 까망 하르방 2021. 3. 4.
반응형

컬렉션(Collection)

현대의 자바 프로그램을 작성하는데 빼놓을 수 없는 중요한 도구이다.

Java 언어는 개발자가 보다 현재 만들려고 하는 비즈니스 로직을

최대한 빨리 구현할 수 있도록 많은 API를 지원합니다.

자바의 JDK는 소위 '자료 구조' 과목에서 배운 중요한 자료구조 개념들을

컬렉션으로 만들어 제공하기 때문에 개발자는 이에 대해 잘 알 필요가 있다.

즉, 자료구조 역시 이미 클래스로 만들어져 있는 것들이 많은데 이를 컬렉션(Collections)이라 합니다.

 

여러 종류의 자료구조를 사용하는 이유

- 자료구조를 이용하면 보다 편리하게 원하는 데이터를 찾을 수 있습니다.

- 적절한 자료구조를 선택하면 더 빠르게 검색할 수 있습니다.

 

자료구조마다 데이터를 저장하고 검색하는 데 있어서 방식의 차이기 있기 때문입니다.

예를 들어, 어떤 자료구조는 데이터의 중복을 허용하지 않지만,

검색에서 더 좋은 기능을 제공할 수도 있고,

어떤 자료구조는 데이터의 중복을 허락하는 대신에

최신 데이터를 가장 빠르게 꺼낼 수 있는 기능이 있을 수도 있습니다.

 

Collection

    Set (HashSet, LinkedHashSet, TreeSet)

    List (ArrayList, Vector, LinkedList)

    Queue (PriorityQueue)

Map 

    SortedMap (TreeMap)

    Hashtable

    LinkedHashMap

    HashMap

 

각 자료구조는 내부적인 구조에 따라서 데이터를 저장하고, 유지하는 방식이 다르게  설계되어 있습니다.

또한, 자료구조마다 속도의 차이도 존재합니다. 순차적인 접근에서 빠르고, 

어떤 자료구조는 데이터의 검색 측면에서 속도가 더 나을 수 있습니다.

그렇기에 List, Map, Stack, Queue 등의 특징을 이해해서

해당 자료구조들을 어느 곳에 적용할 지 판단하여야 합니다.

 

자료구조의 특징은 면접질문에서도 자주 나오며, 다른 자료구조와 비교해보는 것도 좋습니다.

List : 순서를 가지고 있으며, 중복을 허용하는 보관 구조(인덱스 번호가 중요한 역할을 한다.)

Set : 순서를 가지지 않고, 데이터의 중복을 허용하지 않는 구조

Map : 키와 값을 가지며, 키를 가지고 원하는 데이터를 검색하는 구조

 

* 자료구조에서는 equals(), hashCode() 메소드에 주의해야 한다.

두 메소드는 java.lang.Object 클래스에 정의되어 있는 메소드로 모든 객체가 자동으로 물려받은 메소드

- equals() : 물리적으로 같은 객체가 아니라도 논리적으로 같으면 자료구조에서 같다고 판단하는데 유용

- hashCode() : 해시 알고리즘을 기반으로 하는 객체들의 검색 시에 사용

 

 

 

반응형

댓글