컬렉션(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() : 해시 알고리즘을 기반으로 하는 객체들의 검색 시에 사용
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 배열 관련 함수 arraycopy() 분석 (0) | 2021.03.04 |
---|---|
[Java] 배열 개념 (선언 및 초기화) (0) | 2021.03.04 |
[Java] 객체 소멸 (0) | 2021.03.02 |
[Java] 절차적 vs 함수적 vs 객체지향 프로그래밍 비교 (0) | 2021.03.02 |
[Java] 제어문 (if, swtich, for, while) (0) | 2021.03.02 |
댓글